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

Angular 16部署IIS后Asset文件夹文件返回403禁止访问问题排查

排查方向及解决方案

1. 文件权限问题

  • 检查异常服务器assets文件夹及其所有子文件(JSON、图片等)的NTFS权限,确保IIS应用池的标识用户(格式为IIS AppPool\你的应用池名称)拥有读取权限,可对照正常服务器的权限配置调整。
  • 注意:若部署时手动复制文件,可能继承父目录的限制权限,需手动添加应用池用户的读取权限。

2. IIS MIME类型缺失

  • .json和图片文件的MIME类型未配置时,IIS会拒绝请求返回403:
    • 打开IIS管理器,进入对应站点 → 功能视图 → MIME类型 → 添加.json,MIME类型设为application/json;
    • 同时确认logo对应的格式(如.png/.svg)的MIME类型已存在,缺失则补充。

3. URL重写规则错误

  • Angular单页应用依赖URL重写,若规则未排除assets目录,会拦截静态文件请求:
    • 对比两台服务器的web.config,确保重写规则包含assets排除项:
      <rule name="Angular Routes" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          <add input="{REQUEST_URI}" pattern="^/assets/" negate="true" />
        </conditions>
        <action type="Rewrite" url="/index.html" />
      </rule>
      

4. Angular构建路径不匹配

  • 若异常服务器站点使用虚拟目录,而构建时未指定base-href,会导致assets请求路径错误:
    • 用浏览器开发者工具查看失败请求的URL,确认是否与服务器实际文件路径一致;
    • 若路径错误,重新构建应用:ng build --base-href /你的虚拟目录路径/后重新部署。

5. IIS静态内容功能未启用

  • 异常服务器可能未安装「静态内容」角色服务,无法提供静态文件:
    • 打开服务器管理器 → 添加角色和功能 → 找到Web服务器(IIS)→ 常见HTTP功能 → 勾选「静态内容」,安装后重启IIS。

关于翻译文件加载的说明

你提到的每次加载5个JSON文件是ngx-translate-multi-http-loader的正常行为:它会按需加载当前路由对应的翻译文件,已加载的文件会被缓存,后续切换路由时仅加载未缓存的文件,不属于异常问题。

内容的提问来源于stack exchange,提问作者habib ul haq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:52:47