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

无法在IIS默认网站中部署React应用的问题求助

React应用添加到IIS默认网站无法运行的排查方案
  • 检查应用池配置
    确保默认网站使用的应用池托管管道模式为「集成」,.NET CLR版本选择「无托管代码」——React是静态单页应用,不需要托管.NET运行时,错误的应用池配置会导致静态文件无法正确解析。

  • 配置URL重写规则
    React单页应用依赖前端路由,IIS默认不会将非文件路径的请求转发到index.html。需要在默认网站根目录(或你的React应用虚拟目录下)添加web.config,写入重写规则:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="React 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>
        <staticContent>
          <mimeMap fileExtension=".json" mimeType="application/json" />
          <mimeMap fileExtension=".js" mimeType="application/javascript" />
          <mimeMap fileExtension=".css" mimeType="text/css" />
        </staticContent>
      </system.webServer>
    </configuration>
    

    注意:如果你的React应用是作为默认网站的虚拟目录部署,<action>里的url要改成虚拟目录路径,比如/your-virtual-dir/index.html。

  • 验证静态文件模块与MIME类型
    确认IIS已安装「静态文件」和「URL重写」模块(可通过「服务器管理器-添加角色和功能」检查)。同时确保默认网站的MIME类型包含React所需的.js、.css、.json等类型,上面的web.config也已经配置了这些。

  • 检查虚拟目录的权限与路径
    确保添加的虚拟目录物理路径指向正确的React构建产物目录(即npm run build生成的build文件夹),并且该目录的权限已正确授予:

    • 给IIS_IUSRS组授予读取和执行权限(不止IUSR和NETWORK_SERVICE,IIS应用池默认用这个组的权限)
    • 确认权限已递归应用到所有子文件和文件夹
  • 对比新建网站与默认网站的身份验证设置
    打开新建网站和默认网站的「身份验证」面板,确保两者的设置一致——比如都启用「匿名身份验证」,且匿名用户身份使用「应用池标识」(而不是特定用户)。

IIS部署React报错截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:22:09