如何在IIS上发布Asp.net Core+React.js独立项目解决方案?
部署独立结构的Asp.net Core + React.js到IIS步骤
一、发布Asp.net Core后端项目
- 在Visual Studio 2022里右键点Asp.net Core项目,选发布
- 选IIS、FTP等,点下一步
- 选文件夹作为发布目标,指定本地一个文件夹路径(比如
D:\Publish\Backend),点完成 - 点发布按钮,等发布完成,后端文件会输出到指定文件夹
二、发布React.js前端项目
- 打开React项目根目录(比如解决方案里的
ClientApp文件夹),启动命令提示符或终端 - 执行打包命令:
npm run build,执行完会在React项目根目录生成build文件夹,里面是打包好的静态文件 - 把
build文件夹里的所有文件复制到单独的发布文件夹(比如D:\Publish\Frontend)
三、IIS配置
配置后端站点
- 打开IIS管理器,右键点网站,选添加网站
- 填站点名称(比如
CoreBackend),物理路径选刚才发布后端的文件夹(D:\Publish\Backend) - 设置端口(比如
5000,确保没被占用),点确定 - 右键点刚建的后端站点,选管理网站 -> 浏览,测试接口能不能正常访问
配置前端站点
- 再右键点网站,选添加网站
- 填站点名称(比如
ReactFrontend),物理路径选前端发布的文件夹(D:\Publish\Frontend) - 设置端口(比如
3000),点确定 - 浏览前端站点,测试页面加载是否正常,同时检查前端调用后端接口的地址是否正确(要指向后端站点的域名/端口,比如
http://localhost:5000/api/xxx)
可选:合并部署(前端托管在后端站点)
如果不想分开两个站点,可把React打包后的文件复制到后端发布文件夹的wwwroot目录(没有就新建),然后修改Asp.net Core项目的Program.cs,添加静态文件支持:
app.UseStaticFiles(); // 单页应用需添加 fallback 配置,避免刷新页面404 app.MapFallbackToFile("index.html");
这样只需部署一个后端站点,访问后端端口就能加载前端页面,接口也能正常调用。
内容的提问来源于stack exchange,提问作者Adnan Mustafa
相关产品推荐
相关产品推荐

