You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否仅让Angular的baseHref作用于资源,不影响路由与Http请求?

解决方案

baseHref会同时作用于路由和资源请求,要实现资源走指定前缀、路由保持根路径的效果,可以用Angular的deployUrl配置和baseHref分开设置:

方法1:通过构建命令参数设置

直接在构建时分别指定路由基准和资源加载路径:

ng build --base-href / --deploy-url /assets/app/dist/
  • --base-href /:让路由保持根路径,不会带上assets/app/dist前缀,你的路由依然是http://localhost:9000/#/home
  • --deploy-url /assets/app/dist/:指定所有静态资源(JS、CSS、图片等)的加载前缀,解决资源404问题

方法2:在angular.json中配置

如果想把配置固化到项目文件里,打开angular.json,找到对应项目的architect.build.options节点,添加以下配置:

"baseHref": "/",
"deployUrl": "/assets/app/dist/"

这样每次构建都会自动应用这两个配置,效果和命令行参数一致。

注意:你的路由已经启用了useHash: true,这个方案完全兼容,hash模式下路由的基准路径不会影响#后面的路由部分,只会确保资源请求走指定前缀。

内容的提问来源于stack exchange,提问作者garethdn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:12:47