我正在开发Blazor项目,基本上有3个项目:Client
,Server
和Components
。 Components
是一个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>)
因此,Server项目中的_Host.cshtml
是入口点。我正在尝试通过以下方式从组件RCL引用main.js文件:
<scipt src="_content/Components/js/main.js"></script> <<--- NOT WORKING
但是它不起作用-我得到了404。我将其基于this,更具体地说是this。
请注意,通过执行此操作,我可以引用Client项目中的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访问嵌入式ASP.NET GlobalResources? - javascript我正在开发一个遗留的ASP.NET项目,该项目正试图缓慢地进行调整,但是如果没有像巧克力手指屋一样塌陷的情况,我将无法进行重大更改。我试图为此找到解决方案,但由于术语的特定混合(“ javascript”,“ embedded”和/或“ resource”只是为我提供了有关如何嵌入.js文件的信息,而失败了)。 。),这可能是一种怪异的处理方式。该项目将Ap…
ddl在服务器中未更新-asp.net - javascript我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……
获取JavaScript值到C#字符串 - javascript是否可以在C#中执行类似的操作?该值为“ 10/05/2014”string jsValue = javascript("$('#EstimatedStartDate').val()"); 参考方案 您能否更详细地阐明您要做什么。看来您正在尝试从javascript(客户…
从ASP.NET MVC中的AngularJS控制器加载数据而无需加载整个页面 - javascript这是我的动作: [HttpPost, ValidateAntiForgeryToken] public ActionResult GetData() { //get data from DB and populate model with data return View("Data", model); } 该视图是: @model UI…
将Windows窗体屏幕截图应用程序转换为ASP.NET - javascript我是一位C#ASP.NET开发人员,他试图创建一个Web应用程序,允许用户指定屏幕区域并对其进行屏幕捕获。我发现了很多javascript和jquery解决方案,但我认为它们太复杂了,我缺乏与它们一起使用的javascript技能。我在MSDN上找到了以下代码:using System; using System.Windows.Forms; using S…