15

我的 Angular 应用程序托管在应用程序 URL 为http://xyz.domain.in(示例 URL)的服务器中。现在我在其中创建了子目录来托管另一个应用程序。但是当我尝试访问http://xyz.domain.in/subfolder之类的路径时,会在控制台中获取它。

错误:无法匹配任何路由。URL 段:“子文件夹”

子文件夹中应用程序的基本 href 是

<base href="./subfolder">

如何做到这一点?

4

5 回答 5

38

您必须在启动构建时指定子文件夹的路径:

ng build --base-href=/subfolder/
于 2018-06-22T13:01:52.487 回答
6

不需要提及子文件夹名称,如果您在子文件夹中解聚,您只需提及 href="./"

于 2020-08-06T21:57:51.033 回答
1

构建到子文件夹:

ng build --prod --output-path="dist/subfolder" --deployUrl="subfolder/"

https://floyk.com/en/wall/status/BX

于 2020-09-01T05:40:58.057 回答
0

您需要pathMatch像这样添加到您的路线:

{path: 'url', component: YourComponent, pathMatch: 'subfolder'},
于 2018-06-22T12:34:22.150 回答
-2

要在子目录上正确设置 Angular 应用程序:

  1. 更新 angular.json 以包含baseHref构建选项下的属性。IE:
...
build": {
  "builder": "@angular-devkit/build-angular:browser",
  "options": {
    "baseHref": "/subdirectory1/subdirectory2",
  1. 更新 index.html 基础 href:
<base href="/subdirectory1/subdirectory2">
  1. 确保useHash未在您的应用路由模块中设置ExtraOption(因为默认值为 false)

  2. 更新图像和样式链接。任何绝对图像链接都应该是相对的

前任。从:src="/assets/img/pic.jpg"到:src="assets/img/pic.jpg"

scs前。

从:background-image: url('/assets/img/pic.jpg 到:background-image: url('../../../assets/img/pic.jpg

于 2021-11-18T02:04:08.157 回答