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

Angular发布到IIS后无法读取assets/config.json文件

Angular部署IIS后assets/config.json 404问题解决

1. 验证Angular构建配置

打开项目根目录的angular.json,检查projects -> [你的项目名] -> architect -> build -> options -> assets配置,确保src/assets或src/assets/config.json被包含在内,示例:

"assets": [
  "src/favicon.ico",
  "src/assets"
]

重新执行构建命令(如ng build --prod),确认dist/assets目录下存在config.json文件。

2. 配置IIS静态文件与MIME类型

  • 确保IIS已安装静态文件功能:打开服务器管理器 -> 添加角色和功能 -> 勾选Web服务器(IIS)下的「静态文件」完成安装。
  • 添加JSON文件的MIME类型:打开IIS管理器 -> 对应站点 -> MIME类型 -> 点击「添加」,扩展名填.json,MIME类型填application/json。

3. 配置IIS URL重写(适配SPA路由)

Angular作为单页应用,部署到IIS需要URL重写规则避免路由冲突,同时保证静态资源正常访问:

  1. 安装IIS的URL重写模块(若未安装需手动下载安装)。
  2. 在Angular构建后的dist目录下创建web.config文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
    <rewrite>
      <rules>
        <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" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

4. 检查部署路径与请求方式

  • 若应用部署在IIS子站点(如http://my-web-server/my-app/),构建时需指定基础路径:
    ng build --prod --base-href /my-app/
    
    同时修改web.config中的重写目标为/my-app/:
    <action type="Rewrite" url="/my-app/" />
    
  • 代码中请求配置文件时使用相对路径,避免硬编码绝对路径:
    this.http.get('./assets/config.json').subscribe(config => {
      // 处理配置内容
    });
    

5. 确认IIS站点物理路径

检查IIS站点的物理路径是否指向Angular构建后的dist目录,而非项目的源码目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:40:47