ASP.NET搭配React SPA服务无法启动 访问localhost:5001报index.html缺失错误
问题根因
你直接从\bin\Debug\net 5.0目录运行exe时,程序默认启动生产环境:生产环境下SPA中间件不会自动启动React开发服务,也不会读取spa.Options.SourcePath的配置加载前端源码,只会从你指定的ClientApp/build目录查找已经打包完成的静态资源,找不到index.html就触发了该报错。
解决方法
- 方案1:本地调试切换为开发环境运行
运行exe前先设置环境变量,Windows CMD下执行:
再启动exe即可,此时会自动触发React开发服务启动,正常加载前端页面。set ASPNETCORE_ENVIRONMENT=Development - 方案2:生产模式下手动打包前端资源
进入项目根目录下的ClientApp文件夹,执行命令打包前端:
打包完成后将生成的npm run buildbuild文件夹整体复制到\bin\Debug\net 5.0\ClientApp\路径下,再启动exe即可正常访问。 - 方案3:修改工作目录避免重复复制文件
不想每次打包后都复制文件的话,启动exe前先切换CMD的工作目录到项目根目录(即包含ClientApp文件夹的上层目录),再执行exe:
此时程序会直接读取项目下的.\bin\Debug\net5.0\你的程序名称.exeClientApp目录的文件,不需要额外复制。
内容的提问来源于stack exchange,提问作者Pabloa
相关产品推荐
相关产品推荐

