Blazor服务器-静态文件不';非开发环境中的t链接
似乎在标准Blazor服务器应用程序中,除了开发环境之外,没有正确引用_内容文件夹项。例如,此引用在任何非开发环境中都会失败: 从_Host.cshtml:Blazor服务器-静态文件不';非开发环境中的t链接,blazor,blazor-server-side,blazored,Blazor,Blazor Server Side,Blazored,似乎在标准Blazor服务器应用程序中,除了开发环境之外,没有正确引用_内容文件夹项。例如,此引用在任何非开发环境中都会失败: 从_Host.cshtml: <link href="_content/Blazored.Typeahead/blazored-typeahead.css" rel="stylesheet" /> 要重新编程,请以Blazored toast lib为例(但任何静态文件引用似乎都存在此问题): 创建新Blazor服务器项目(dotnet新Blazor服
<link href="_content/Blazored.Typeahead/blazored-typeahead.css" rel="stylesheet" />
要重新编程,请以Blazored toast lib为例(但任何静态文件引用似乎都存在此问题):
创建新Blazor服务器项目(dotnet新Blazor服务器)
我遗漏了什么可以让此引用在其他环境中工作 当应用程序发布时,从Razor类库中使用静态资产是开箱即用的。您只需像以前那样通过
包含静态内容
但是,从生成输出(dotnet运行)或通过Visual Studio中的F5运行应用程序时,必须确保为给定环境启用了StaticWebAsset功能
默认情况下,它仅对开发环境启用。通过确保调用usesticfiles
并在程序中调用usesticwebassets
,您可以无条件地打开该功能。CreateHostBuilder
因此,请确保您的应用程序具有:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseStaticFiles();
...
}
在Program.cs中,您应该
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStaticWebAssets();
webBuilder.UseStartup<Startup>();
});
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStaticWebAssets();
webBuilder.UseStartup();
});
谢谢你的回答,我会在周一回到办公室后再试一次。我有app.UseStaticFiles(),但没有.UserStaticWebAssets()。让我感到奇怪的是,从代码中,没有任何地方可以看出这是登台和生产所需要的,而不是开发环境所需要的。这些代码更改都没有引用环境。上的文档中没有为我+1.提供更多相关详细信息。。在内容样式和脚本资源上获得了404,但只有在登台和生产环境运行的情况下才能获得404。添加UseStaticWebAssets()后问题得到解决显然我的问题未经我的许可就被编辑了,添加了奇怪的格式-这是新事物吗,现在任何人都可以编辑你的问题了?我认为可以格式化问题。如果你不喜欢这个,我很抱歉。“现在任何人都可以编辑您的问题?”:可以。具有足够rep的每个人都可以编辑其他线程。如果你想回顾这篇文章,将会有一个问题。对不起,我不是故意批评你,我很感激你的意图,这让我很失望。我想格式化没有什么坏处,只是为了可读性,我更喜欢将段落保持为一种字体/大小,等等。代码段使用不同的字体。我看到了历史记录,但看不到任何拒绝或撤消更改的方法。没问题,只是我觉得奇怪,其他非版主成员可以覆盖OP的内容。我将其回滚到您的原始内容。