Blazor WASM无index.html,开发正常但发布后仅显示文件列表
解决Blazor WASM发布后显示文件列表的问题
先找index.html:它就在项目的wwwroot目录下,开发模式下IDE可能默认折叠了wwwroot,展开就能看到。发布后这个文件会被复制到输出目录的wwwroot文件夹里,不会丢失。
发布后显示文件列表的核心原因:服务器没把index.html设为默认文档,也没配置SPA路由 fallback(Blazor是单页应用,所有路由请求都得指向index.html)。
具体解决步骤:
- 用
dotnet serve启动发布后的项目时,得加参数指定默认文档和fallback:dotnet serve --directory wwwroot --default-files index.html --spa-fallback index.html - 要是部署到其他服务器(比如IIS、Nginx):
- IIS:在站点配置里把index.html添加到默认文档列表,确保安装ASP.NET Core模块,发布生成的web.config一般已包含SPA fallback规则,若缺失可手动补充。
- Nginx:在server块里设置
index index.html;,再加一条try_files $uri $uri/ /index.html;路由规则。
- 检查项目配置:打开.csproj文件,确认有类似
<Content Include="wwwroot\index.html" />的配置(默认项目都自带,若误删可手动添加),保证发布时该文件会被复制到输出目录。
- 用
额外提醒:开发模式下
dotnet run会自动处理默认文档和SPA路由,所以能正常运行,但发布后需要手动配置服务器的这些规则,否则就会显示文件目录。
内容的提问来源于stack exchange,提问作者badCode
相关产品推荐
相关产品推荐

