我有一个包含多个项目的angular 6应用程序,我将重写规则配置为以下内容:
"rewrites": [
{
"source": "/ticket/**",
"destination": "/ticket-app/index.html"
},
{
"source": "/client/**",
"destination": "/client-app/index.html"
},
{
"source": "/admin/**",
"destination": "/admin-app/index.html"
}
],
应用程序的部署没有错误,但是当转到url时,应用程序无法正常运行,.js不会为浏览器加载。当您访问.js的网址时,只会得到.html页面。我可以在开发者控制台中看到以下错误:
所有对.js文件和.css文件的获取请求总是返回index.html页面,我尝试使用其他这样的重写格式:
"rewrites": [
{
"source": "/ticket/**",
"destination": "/ticket-app/**"
},
{
"source": "/client/**",
"destination": "/client-app/"
},
{
"source": "/admin/**",
"destination": "/admin-app/*"
}
],
但是没有工作。我使用以下命令构建应用程序:
ng build ticket-app --prod --base-href '/ticket/'
谢谢
答案 0 :(得分:0)
您还需要添加deployUrl
。有2个选项
1)构建应用程序时添加--deploy-url
参数
ng build ticket-app --prod --base-href '/ticket/'
2)在angular.json
中为每个应用程序添加配置
"build": {
"options": {
...
"baseHref": "/ticket/",
"deployUrl": "/ticket/"
},
...
}