gpt4 book ai didi

javascript - 无法从 RCL 引用静态文件

转载 作者:行者123 更新时间:2023-11-28 03:18:22 25 4
gpt4 key购买 nike

我正在开发一个 Blazor 项目,其中基本上有 3 个项目:Client , Server ,和ComponentsComponents是一个 RCL。其结构类似于以下内容:

Components (RCL)
-- wwwroot/
---- js/
------ main.js

Client
-- wwwroot/
---- js/
------ main.js

Server
-- Startup.cs (in Configure(IApplicationBuilder app), calling `app.UseClientSideBlazorFiles<Client.Startup>();`)
-- Pages
---- _Host.cshtml (in this file, referencing a main.js from the Components project like: <script src="_content/Components/js/main.js"></script>)

所以_Host.cshtml Server 项目中是入口点。我尝试通过执行以下操作从 Components RCL 引用 main.js 文件:

<scipt src="_content/Components/js/main.js"></script> <<--- NOT WORKING

但是它不起作用 - 我得到了 404。我基于 this更具体地说this .

请注意,我可以通过执行此操作来引用客户端项目中的 main.js 文件

<script src="js/main.js"></script> <<<--- WORKS

但是使用 _content/{library_name}/... 在 RCL 中引用静态文件约定不起作用。

有什么问题吗?

最佳答案

根据 Microsoft documentation ,您必须在使用项目的引导文件中包含 2 行,以便静态文件引用起作用:

1) Startup.cs > Configure() 方法 必须包含 app.UseStaticFiles();

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...

app.UseStaticFiles(); // <<=== MUST INCLUDE THIS LINE

...
}

2) Program.cs > CreateHostBuilder() 方法 必须包含 webBuilder.UseStaticWebAssets();

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;

public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

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

#2 是我所缺少的。我不确定我是否只是在文档中错过了这一点,或者他们最近是否更新了它以包含这一点,但无论哪种方式都为我修复了它。

关于javascript - 无法从 RCL 引用静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59431923/

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