Blazor 找不到或忽略作用域 CSS

Int*_*ape 6 css razor blazor

我创建了一个 Cart.razor.css 文件,它是 Cart.razor 目录中的子文件。据我了解,这就是 Razor 中所谓的作用域 CSS 文件。我已阅读此处的文档,据我所知,CSS (Cart.razor.css) 文件应该自动包含在内,并且可以在父 (Cart.razor) 文件中使用。但在我的例子中却并非如此。

这是文件目录的图像

这里的问题是,无论我做什么。包含在作用域 CSS 文件中的 CSS 将不会被执行。

以下是一些 Cart.razor 文件,显示了使用自定义 CSS 的尝试。注意"btn-delete"

<button class="btn-delete" @onclick="@(() => DeleteItem(item))">
Run Code Online (Sandbox Code Playgroud)

这是 Cart.razor.css 文件的一些内容。

.btn-delete{
    background: none;
    border: none;
    padding: 0px;
    color: red;
    font-size: 12px;
}

.btn-delete:hover{
    text-decoration: underline;
}
Run Code Online (Sandbox Code Playgroud)

这是结果的图像

正如您所看到的,该按钮显然不是红色或无边框的。

我的问题是:

  • 我是否需要以某种方式将 CSS 表包含在 razor 文件中?
  • 这是否与我使用 Rider 而不是 Visual Studio 有关?

Bre*_*ers 7

我发现浏览器正在缓存旧的 css,并且没有注意到新范围的 css 文件引起的更改。在浏览器中执行 Ctrl F5 重新加载会加载预期的 css。


Nic*_*ada 5

如果您已在head部分添加样式表引用,请检查您的 index.html(对于 Webassemble)或 _Host.cshtml(对于服务器):

<head>
...
    <link href="<applicationName>.Client.styles.css" rel="stylesheet" />
</head>
Run Code Online (Sandbox Code Playgroud)

该文件将与您所有的 CSS 隔离文件组成。

之后,我测试了你的代码,结果是:
测试删除按钮

另外两个可能需要检查的问题:

  1. 如果您已升级项目,请检查您的Project.Client.csproj<RazorLangVersion>3.0</RazorLangVersion><PropertyGroup>
  2. 检查ASPNETCORE_ENVIRONMENT系统变量是否设置为Development

  • 这个技巧对我有用,但我需要将不带“Client”的 &lt;applicationName&gt; 项目名称添加到 WebAssembly 版本的 index.html 标头部分。 (2认同)