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]Asp.Net Core与配置系统的集成