gpt4 book ai didi

Blazor 服务器 - 静态文件不会在非 DEV 环境中链接

转载 作者:行者123 更新时间:2023-12-03 19:43:53 24 4
gpt4 key购买 nike

似乎在标准 Blazor 服务器应用程序中,_content 文件夹项目没有被正确引用用于开发环境以外的任何东西。例如,此引用在任何非开发环境中都失败:

来自 _Host.cshtml:

<link href="_content/Blazored.Typeahead/blazored-typeahead.css" rel="stylesheet" />

以 Repro 为例,使用 Blazored-toast lib 作为示例(但任何静态文件引用似乎都有这个问题):

创建一个新的 Blazor Server 项目(dotnet new blazorserver)
  • 添加所有必要的 Blazored/Toast 元素,包括演示代码
    toast
  • 测试 toast 是否有效 更改
    launchSettings.json ASPNETCORE_ENVIRONMENT 到暂存、生产、
    或开发以外的任何东西
  • 再次运行程序(使用 ISS
    表示本地调试),并注意 css 格式不正确
  • 更改调试设置以改用 Kestrel(更改 IIS Express
    下拉到 BlazorApp1 或类似)
  • 用红隼注意,css是
    工作正常

  • 我错过了什么可以让这个引用在其他环境中工作?

    最佳答案

    当应用程序发布时,使用 Razor 类库中的静态 Assets 开箱即用。您只需通过 <link href="..." /> 包含静态内容像你一样。

    但是,当从构建输出 (dotnet run) 或通过 Visual Studio 中的 F5 运行应用程序时,您必须确保为给定环境启用了 StaticWebAsset 功能。

    默认情况下,它仅对开发环境启用。您可以通过确保您调用 UseStaticFiles 无条件地打开该功能。并调用 UseStaticWebAssetsProgram.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>();
    });

    关于Blazor 服务器 - 静态文件不会在非 DEV 环境中链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58862932/

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