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

如何在IIS 10的Flutter网站同域名API文件夹部署API

在IIS 10中同一域名下部署Flutter网站与API(API文件夹)的操作步骤
  • 准备API部署文件
    确认你的Flutter网站已在IIS正常运行,将API的所有部署文件(如ASP.NET Core发布包、Node.js代码文件等)复制到Flutter网站根目录下新建的API文件夹中。例如,若Flutter网站根目录为C:\inetpub\wwwroot\FlutterWeb,则API文件路径应为C:\inetpub\wwwroot\FlutterWeb\API。

  • 将API文件夹转换为IIS应用程序

    1. 打开IIS管理器,找到你的Flutter网站节点。
    2. 右键点击根目录下的API文件夹,选择「转换为应用程序」。
    3. 在弹出的对话框中,选择与API运行环境匹配的应用程序池(比如ASP.NET Core API需选.NET Core专用池,Node.js API需选对应配置的池),点击「确定」完成配置。
  • 解决Flutter路由与API的冲突
    Flutter作为单页应用,默认web.config会将所有非文件/非目录的请求重写到index.html,这会导致API请求被错误拦截。需修改根目录下的web.config,添加一条优先匹配API路径的规则:

    <rewrite>
      <rules>
        <!-- 优先处理API请求,不执行后续Flutter路由规则 -->
        <rule name="Skip API for Flutter" stopProcessing="true">
          <match url="^API/(.*)" />
          <action type="None" />
        </rule>
        <!-- 原Flutter路由规则 -->
        <rule name="Flutter SPA 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>
    

    修改完成后保存web.config,并重启Flutter网站。

  • 验证部署结果

    1. 访问https://你的域名/API/具体接口路径,确认API能正常返回响应。
    2. 测试Flutter网站的各个页面路由,确保单页应用的跳转依然正常。
  • 权限配置(按需操作)
    检查API文件夹的权限:确保对应应用程序池的身份拥有该文件夹的读取、执行权限;若API需要写入文件(如日志、上传文件),需额外添加写入权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:55:27