gpt4 book ai didi

blazor - 当 ASPNETCORE_ENVIRONMENT 更改为 "Development"以外的任何内容时 - 在 VS 中调试时,Blazor 应用程序看不到来自 razor 类库的资源

转载 作者:行者123 更新时间:2023-12-04 12:34:03 26 4
gpt4 key购买 nike

也许只是试试这个例子:

https://github.com/HTD/BlazorProfiles

这是一个演示 Blazor 应用程序(默认)。我创建了 2 个自定义应用程序配置文件:开发和生产。两者都应该可以在 Visual Studio 中按 F5 键进行调试。

然后我创建了一个虚拟的 Razor 组件库并将其命名为 RCL。我使它成为主项目的依赖项。在我的虚拟 RCL 中,在 wwwroot 目录中,我添加了 extra.css 文件。该文件的作用是将背景颜色更改为浅绿色。如果它发生 - 这意味着文件已被加载。如果背景保持灰色/白色,则未加载。

这是加载 CSS 的 _Host.cshtml 片段:

<link href="_content/RCL/extra.css" rel="stylesheet" />

尝试运行它。有用。但是在一种情况下:ASPNETCORE_ENVIRONMENT 环境变量必须设置为“开发”。

如果您测试 Production 配置文件(或将环境变量更改为“Production”)然后运行应用程序 - extra.css 文件将不会被加载。

enter image description here

背景没有变成绿色,所以有问题。为什么会这样?这是 Visual Studio 中的错误吗?

如果你想知道为什么我需要设置这个环境变量:它允许加载额外的

appsettings.[ASPNETCORE_ENVIRONMENT].json

文件。所以我可以为我的应用程序设置不同的配置。我需要使用不同的配置测试我的应用程序。现在我只能在 Visual Studio 中使用“开发”配置对其进行调试。当我将配置更改为其他任何内容时,我无法运行我的应用程序,因为它无法从库中加载组件所需的必要 JavaScript 文件。

因此,预期的行为:无论我在“ASPNETCORE_ENVIRONMENT”中添加了什么 - 来自 RCL 的文件都应该始终加载。他们为什么不应该呢?

实际行为:使用不同的配置(配置文件)会中断 Razor 组件库加载。

最佳答案

找到它in the ASP.NET core github issues .居然提到了in the docs .

您需要在虚拟主机中启用静态网络 Assets :

    public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => {
webBuilder.UseStaticWebAssets(); // <----
webBuilder.UseStartup<Startup>();
});

编辑:注意文档中的注释

Calling UseStaticWebAssets isn't required when running an app from published output (dotnet publish).

关于blazor - 当 ASPNETCORE_ENVIRONMENT 更改为 "Development"以外的任何内容时 - 在 VS 中调试时,Blazor 应用程序看不到来自 razor 类库的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66430714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com