Blazor Server项目构建时未生成Blazor.Bootstrap的_content文件夹导致运行时404错误
兄弟,我之前也踩过类似的坑,给你几个排查和解决的方向,你挨个试试:
先确认NuGet包安装是否到位:打开项目的NuGet包管理器,检查Blazor.Bootstrap 3.3.1是否真的成功安装到了启动项目上(别误装到类库项目里)。如果不确定,干脆卸载后重新安装一次,避免安装过程中出现隐性错误。
检查Program.cs的核心配置:.NET 8的Blazor项目必须在Program.cs里添加BlazorBootstrap的服务和中间件,你看看有没有漏掉这两步:
// 添加BlazorBootstrap服务 builder.Services.AddBlazorBootstrap(); // 在app.UseRouting()之后、app.MapBlazorHub()之前添加中间件 app.UseBlazorBootstrap();这两步是触发静态资源生成的关键,没加的话项目根本不会自动生成
_content文件夹。确认布局文件里的资源引用:打开主布局文件(比如
MainLayout.razor),检查<head>标签里有没有引入BlazorBootstrap的CSS,以及<body>末尾有没有引入JS:<!-- 在<head>标签内添加 --> <link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet"> <!-- 在<body>结束前添加 --> <script src="_content/Blazor.Bootstrap/blazor.bootstrap.js"></script>这些引用会触发构建时将静态资源复制到
_content文件夹,没加的话自然不会生成对应的目录。清理缓存并重建项目:有时候项目缓存会搞幺蛾子,你可以手动删除项目根目录下的
bin和obj文件夹,然后在终端运行dotnet clean && dotnet build命令重新构建,或者在VS里右键项目选择“清理”再“生成”。检查静态文件服务是否启用:Blazor Server项目需要启用静态文件服务才能访问
_content里的资源,看看Program.cs里有没有app.UseStaticFiles();这一行,它一般会放在app.UseRouting()之前。
另外,你提到已经加了@using BlazorBootstrap;,记得把它加到_Imports.razor文件里,这样所有组件都能全局引用,不用每个页面单独添加。
备注:内容来源于stack exchange,提问作者Sandro

