【发布时间】:2022-06-26 21:45:21
【问题描述】:
我创建了一个新的 .NET 6 Blazor 服务器端项目并进行了一些更改。我有几个使用 CSS 隔离的文件(例如 Contact.razor + Contact.razor.css)。在 _Layout.cshtml 页面中,模板添加了以下内容:
<link href="CustomerPortal.styles.css" rel="stylesheet" />
CustomerPortal 是我的项目名称。我可以看到文件在“CustomerPortal\CustomerPortal\obj\Debug\net6.0\scopedcss\projectbundle\CustomerPortal.bundle.scp.css”和“C:\Data\Git\WebApps\CustomerPortal\CustomerPortal\obj”下正确生成\Debug\net6.0\scopedcss\bundle\CustomerPortal.styles.css" 但是当我使用 Kernel 或 IIS Express 运行项目时,我得到一个 404 未找到 CSS,如果我尝试手动导航到 CSS,我也找不到它。有任何想法吗?我的 csproj 没有任何会影响它的标志。
【问题讨论】:
-
远射,但是 - 您添加的任何类型的预处理都会引发错误?
-
你的意思是像 SCSS 还是 SASS?我没有类似的东西,只有普通的 CSS。此外,除了 404 本身没有错误
-
如果我将环境切换为“开发”而不是“本地”,它似乎又可以工作了。我在 .NET 5 Blazor 应用程序上遇到了类似的情况,我不得不添加 webBuilder.UseStaticWebAssets () 在 Program.cs 文件上,但在 .Net 6 上我们没有那个文件和那个 CreateHostBuilder 了..
-
您所描述的确切原因是有道理的。如果您希望静态资产在非默认环境(如“本地”)中发布,您需要在 webbuilder 上调用该 UseStaticWebAssets。即使文件结构最小,您仍然可以访问主机上下文。
-
好的,这有帮助!我想了解现在发生了什么,我看到很多其他用户在 GitHub 上遇到了类似的问题。问题是我怎么打那个电话?我试过 builder.WebHost.UseStaticWebAssets();在我的 Program.cs 上并没有工作,它在运行时出错:“System.NotSupportedException:'Web 根目录从“C:\Data\Git\WebApps\CustomerPortal\CustomerPortal\wwwroot”更改为“C: \Data\Git\WebApps\CustomerPortal\CustomerPortal\"。不支持使用 WebApplicationBuilder.WebHost 更改主机配置。请改用 WebApplication.CreateBuilder(WebApplicationOptions)。'"
标签: css blazor-server-side .net-6.0