ASP.NET Core - 环境为 Stage 时找不到嵌入式资源(Microsoft 标识)。它在开发时工作正常

Posted

技术标签:

【中文标题】ASP.NET Core - 环境为 Stage 时找不到嵌入式资源(Microsoft 标识)。它在开发时工作正常【英文标题】:ASP.NET Core - embedded resource (Microsoft Identity) is not found when environment is Stage. It works fine when it is Development 【发布时间】:2021-09-28 07:25:22 【问题描述】:

我有一个带有标识的 ASP.NET Core Blazor 服务器。当我在开发环境中运行时,一切都按预期工作。具体来说,就是加载嵌入的 css 和 js 文件。示例:“~/Identity/css/site.css”、“~/Identity/lib/jquery-validation/dist/jquery.validate.min.js”。 但是当我将环境更改为 Staging 时,“~/Identity/...”路径中的所有文件都找不到,返回 404 错误。这不仅仅是我的项目。我使用 Identity 创建了一个全新的脚手架式 Blazor 应用程序,它的行为完全相同。任何想法为什么?以及如何解决?

【问题讨论】:

【参考方案1】:

我从https://docs.microsoft.com/en-us/answers/index.html得到了答案。

ZhiLv-MSFT 已回答 · 6 小时前 嗨@panpawel-3022,

在开发环境中默认启用静态 Web 资产。要在从构建输出运行时支持其他环境中的资产,请在 Program.cs 中的主机构建器上调用 UseStaticWebAssets:

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

参考:Consume content from a referenced RCL

【讨论】:

以上是关于ASP.NET Core - 环境为 Stage 时找不到嵌入式资源(Microsoft 标识)。它在开发时工作正常的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ASP.NET Core 的 Main() 中获取环境变量?

ASP.NET Core学习——7

ASP.NET Core 托管环境变量被忽略

[Asp.Net Core]Asp.Net Core与配置系统的集成

[Asp.Net Core]Asp.Net Core与配置系统的集成

[Asp.Net Core]Asp.Net Core与配置系统的集成