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

如何在angular.json中为所有静态资源自动添加admin访问前缀

你当前遇到的问题是绝对路径的资源请求会忽略baseHref配置,这是浏览器的原生行为:当你写src="/assets/..."时,浏览器会直接从站点根目录发起请求,不会拼接你配置的/admin/前缀,所以才会404。

解决方案

方案一(推荐):无需修改angular.json,仅调整资源路径写法

将所有模板中静态资源的绝对路径开头的/去掉,改成相对路径即可:

<!-- 原写法 -->
<img src="/assets/images/test.png">
<!-- 修改后写法 -->
<img src="assets/images/test.png">

Angular会自动结合你已配置的baseHref: "/admin/",将路径自动拼接为/admin/assets/images/test.png,不需要手动添加前缀,也不需要修改任何构建配置。你现有的baseHref和deployUrl配置可以完全保留,不需要改动。

方案二(适配必须保留绝对路径写法的场景):修改angular.json资源输出配置

如果不想调整模板中的路径写法,可以修改assets配置项,将静态资源打包到站点根目录的assets文件夹下,和admin应用目录同级:

"assets": [
  "src/favicon.ico",
  {
    "glob": "**/*",
    "input": "src/assets/",
    "ignore": ["**/*.svg"],
    "output": "/../assets/" // 将原来的"/assets/"修改为该值
  }
],

修改后打包生成的assets目录会位于dist/front/assets,和admin目录同级,此时直接请求/assets/images/test.png即可命中资源,不需要添加admin前缀。该方案的缺点是静态资源和admin应用代码分离,多应用部署时可能出现资源冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:15:05