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

IIS加载旧网站内容问题:Angular升级后新页面无法显示

解决IIS加载Angular旧版本的问题

1. 浏览器缓存干扰

  • 强制刷新页面:按Ctrl + Shift + R(Windows/Linux)或Cmd + Shift + R(Mac),跳过本地缓存直接加载最新资源。
  • 开发者工具临时禁用缓存:按F12打开开发者工具,切换到「网络」标签,勾选「禁用缓存」,再刷新页面验证。

2. IIS静态资源缓存配置问题

  • 检查HTTP响应头:打开IIS管理器,找到你的站点,双击「HTTP响应头」,查看是否设置了过长的Cache-Control或Expires缓存时间,可暂时缩短或移除这些头测试。
  • 优化web.config缓存规则:Angular 17打包会自动给静态资源(.js/.css等)添加哈希后缀,可通过web.config配置让哈希文件长期缓存,同时强制index.html不缓存,确保入口文件每次加载最新版:
<configuration>
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
    </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="/index.html" />
        </rule>
      </rules>
    </rewrite>
    <httpProtocol>
      <customHeaders>
        <add name="Cache-Control" value="no-cache, no-store, must-revalidate" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

3. 部署文件不完整

  • 确认上传的是最新打包产物:运行ng build(Angular 17默认生产模式),将dist目录下所有文件完整上传到IIS站点目录,覆盖旧文件。
  • 清理旧文件后重新上传:直接删除IIS站点目录下的所有旧文件,再重新上传新打包文件,避免部分文件未覆盖导致新旧资源混合。

4. IIS应用程序池未刷新

  • 重启应用程序池:打开IIS管理器,找到站点对应的应用程序池,右键选择「回收」或「重启」,确保IIS加载最新的站点文件。
  • 检查应用程序池配置:Angular是静态站点,可将应用程序池设置为「无托管代码」,避免不必要的加载问题。

5. IIS输出缓存影响

  • 禁用输出缓存测试:打开IIS管理器,站点下的「输出缓存」,检查是否启用了缓存规则,暂时禁用后验证是否显示新版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:03:16