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

React Router Dom 5下IIS服务器静态文件下载的web.config配置

配置web.config实现React应用下静态文件目录的正常下载

场景说明:

  • 根路径部署基于react-router-dom 5的单页应用
  • /files/目录为服务器静态文件存储路径,用于文件下载
  • 当前web.config的路由规则会导致/files/下的文件偶尔因缓存或路由处理逻辑出现404,无法正常下载

修改后的web.config配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <!-- 优先处理/files/目录下的请求,直接返回静态文件 -->
        <rule name="Files Directory Access" stopProcessing="true">
          <match url="^files/(.*)" />
          <action type="Rewrite" url="/files/{R:1}" />
        </rule>
        <!-- 原有静态资源规则 -->
        <rule name="Static Assets" stopProcessing="true">
          <match url="([\S]+[.](html|htm|svg|js|css|png|gif|jpg|jpeg))" />
          <action type="Rewrite" url="/{R:1}"/>
        </rule>
        <!-- React路由规则,仅处理非文件/非目录的请求 -->
        <rule name="ReactRouter 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>
  </system.webServer>
</configuration>

关键修改说明:

  • 新增Files Directory Access规则并放在最顶部:IIS重写规则按顺序执行,这条规则会优先匹配所有以files/开头的请求,直接重写到对应文件路径并停止后续规则处理,避免请求被React路由规则捕获。
  • 保留原有静态资源和React路由规则:确保单页应用的静态资源加载和路由跳转功能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:25:13