我希望在我的Angular 2应用程序中为开发和生产设置不同的基础href。
我看到了一些类似(甚至相同)的问题的答案。
这里最好的答案很好地总结了所有这些问题的答案中重复出现的两个解决方案:
我尝试了两种方法,但每种方法都有自己的问题:
1)APP_BASE_HREF
- 对于js/css文件无效。例如,当尝试请求app/someroute/1时,它将尝试从app/someroute/1而不是从app请求js和css文件。
2)在ngOnInit
中修改基础href - 在调用ngOnInit
时,js和css文件已经被请求,因此修改后的基础href仅适用于在初始化后请求的文件,而不适用于初始加载的文件(这对我没有帮助)。
到目前为止,唯一对我有效的方法是在每次编译后手动修改生产环境的html,但我正在尝试自动化它。
可能的解决方案:
1) 在js和css文件被请求之前更改基本href - 有没有办法做到这一点?它们基本上在页面加载时立即请求。可能添加一个在link rel之前在头部执行的脚本?
2) 使用不同的基础href值编译不同的开发和生产HTML,例如使用某种非常轻量级的html模板引擎,这不会过度消耗资源。
你认为呢?
ng serve
中似乎不支持--base-href
,因此无法轻松测试。 :-( - not2savvyng serve
进行测试。如果您不需要这样做,那就没有问题。 - not2savvy