如何在Heroku上部署Syncfusion Blazor预约规划WebAssembly应用?
Blazor WebAssembly 项目Heroku部署报错排查
核心问题
你使用的jincod/dotnetcore-buildpack是针对ASP.NET Core服务端应用设计的,构建完成后默认会尝试启动服务端可执行程序。但Blazor WebAssembly是纯静态客户端应用,编译后仅产出html、js、wasm等静态资源,不存在可执行的服务端程序,因此会触发bash: ./HealthTracker.Client: No such file or directory报错,最终导致应用启动失败抛出H10错误码。
解决方法
你可以选择以下任意一种方案完成部署:
- 方案1:使用静态站点构建包
Blazor WASM编译后本质是静态站点,直接使用Heroku静态站点构建包即可完成部署:- 本地编译Blazor WASM项目,确认
publish/wwwroot目录下静态资源完整 - 在项目根目录新增
Staticfile配置文件,指定静态资源根目录为编译后的wwwroot路径 - 移除原有的dotnetcore-buildpack,添加Heroku官方静态构建包后重新部署即可
- 本地编译Blazor WASM项目,确认
- 方案2:增加ASP.NET Core服务端宿主
如果需要保留dotnet构建流程,可以新建空ASP.NET Core项目作为宿主,将Blazor WASM的静态资源挂载到宿主项目中,配置宿主提供静态文件服务。此时dotnet构建包会生成宿主程序的可执行文件,将启动命令修改为指向宿主可执行文件即可正常启动。
补充检查项
- 确认你部署的是该项目的WebAssembly版本,不要误选服务端渲染分支
- 不要自定义不存在的可执行文件作为启动命令,静态站点方案不需要配置自定义启动命令
内容的提问来源于stack exchange,提问作者desmond ng
相关产品推荐
相关产品推荐

