如何在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应用程序
- 打开IIS管理器,找到你的Flutter网站节点。
- 右键点击根目录下的
API文件夹,选择「转换为应用程序」。 - 在弹出的对话框中,选择与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网站。验证部署结果
- 访问
https://你的域名/API/具体接口路径,确认API能正常返回响应。 - 测试Flutter网站的各个页面路由,确保单页应用的跳转依然正常。
- 访问
权限配置(按需操作)
检查API文件夹的权限:确保对应应用程序池的身份拥有该文件夹的读取、执行权限;若API需要写入文件(如日志、上传文件),需额外添加写入权限。
内容的提问来源于stack exchange,提问作者Arash Ghazi
相关产品推荐
相关产品推荐

