我的 Angular 应用程序托管在应用程序 URL 为http://xyz.domain.in(示例 URL)的服务器中。现在我在其中创建了子目录来托管另一个应用程序。但是当我尝试访问http://xyz.domain.in/subfolder之类的路径时,会在控制台中获取它。
错误:无法匹配任何路由。URL 段:“子文件夹”
子文件夹中应用程序的基本 href 是
<base href="./subfolder">
如何做到这一点?
我的 Angular 应用程序托管在应用程序 URL 为http://xyz.domain.in(示例 URL)的服务器中。现在我在其中创建了子目录来托管另一个应用程序。但是当我尝试访问http://xyz.domain.in/subfolder之类的路径时,会在控制台中获取它。
错误:无法匹配任何路由。URL 段:“子文件夹”
子文件夹中应用程序的基本 href 是
<base href="./subfolder">
如何做到这一点?
您必须在启动构建时指定子文件夹的路径:
ng build --base-href=/subfolder/
不需要提及子文件夹名称,如果您在子文件夹中解聚,您只需提及 href="./"
构建到子文件夹:
ng build --prod --output-path="dist/subfolder" --deployUrl="subfolder/"
您需要pathMatch
像这样添加到您的路线:
{path: 'url', component: YourComponent, pathMatch: 'subfolder'},
要在子目录上正确设置 Angular 应用程序:
baseHref
构建选项下的属性。IE:...
build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"baseHref": "/subdirectory1/subdirectory2",
<base href="/subdirectory1/subdirectory2">
确保useHash
未在您的应用路由模块中设置ExtraOption
(因为默认值为 false)
更新图像和样式链接。任何绝对图像链接都应该是相对的
前任。从: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