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

Flutter Web部署IIS服务器后刷新页面出现404错误求助

Flutter Web部署IIS后刷新页面404问题解决方法

你已经配置了url_strategy包和<base href="/">,这些设置没问题。出现刷新404的核心原因是:Flutter Web是单页应用,页面内跳转由前端路由处理,但刷新时浏览器会直接向IIS请求当前URL对应的物理文件,而这些路由路径在服务器上并没有实际的文件或目录,所以IIS返回404。

解决这个问题需要给IIS配置URL重写规则,把所有非静态文件的请求都转发到index.html,让Flutter前端来处理路由。具体步骤如下:

  • 先安装IIS URL重写模块:打开IIS管理器,在服务器节点的“功能视图”里找到“Web平台安装程序”,搜索并安装“URL Rewrite”模块(已安装可跳过)。

  • 在Flutter Web站点根目录下创建web.config文件,写入以下配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Flutter Web 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=".webmanifest" mimeType="application/manifest+json" />
    </staticContent>
  </system.webServer>
</configuration>

该配置会让IIS忽略对不存在的文件/目录的请求,转而把请求转发到index.html,同时添加了Flutter Web需要的MIME类型,避免静态资源加载异常。

  • 保存web.config后,重启IIS站点或整个IIS服务,刷新页面测试即可正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 02:08:18