www.example.com core blazor中未打开css / js路径的问题asp.net

nhaq1z21  于 2023-02-17  发布在  .NET
关注(0)|答案(1)|浏览(149)

我正在把开发环境从windows转到mac,当我在完成安装后运行代码时,我的网站没有加载,没有显示任何风格,js也不工作。
我有这个路径的文件,一切都在我的Windows上工作非常好,但当我从Mac运行它,然后文件路径不加载,我该如何解决这个问题?我试图搜索整个网络,找不到这个答案,并在这里结束:(

<link href="/_content/FileUploading.SearchEngine.Shared/content/styles/bootstrap.min.css" rel="stylesheet">

<link href="/_content/FileUploading.SearchEngine.Shared/content/styles/style.css" rel="stylesheet">
<link href="/_content/FileUploading.SearchEngine.Shared/content/styles/dashboard.css" rel="stylesheet">
<link href="/_content/FileUploading.SearchEngine.Shared/content/scripts/script.js" rel="stylesheet">

这将成为文件路径的URL = https://localhost:5002/_content/FileUploading.SearchEngine.Shared/content/styles/dashboard.css
这不加载。

vecaoik1

vecaoik11#

我有这个路径的文件,一切都在我的windows上工作得很好,但当我从mac运行它,然后文件路径不加载,我如何解决这个问题?
如果你能分享你的配置细节,比如你是如何调用路径的,以及你的实际资源在哪里,那就更好了。你遇到的问题可能是由很多原因引起的。
如您所知,BlazorWebView控件具有一个配置的主机文件(HostPage),通常为wwwroot/index.html。HostPage路径相对于项目。从BlazorWebView引用的所有静态Web资源(脚本、CSS文件、图像和其他文件)都相对于其配置的HostPage。
因此,HostPage的Web根目录决定了哪些静态资产子集可用。因此,建议将HostPage放置在应用程序的wwwroot文件夹的根目录下,这为从应用程序、RCL以及通过应用程序和RCL的子文件夹提供静态资产提供了最大的灵活性。

    • 如何解决:**
    • 静态文件中间件配置:**

让我们考虑一下,你的资源文件在你的wwwroot文件夹之外;因此,在非IIS宿主和反向代理宿主方案中,可能需要额外的静态文件中间件配置才能正确提供静态文件。对于您的方案,如果您的静态文件放在外部,请检查您是否使用了以下内容:

app.UseStaticFiles();

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(
           Path.Combine(builder.Environment.ContentRootPath, "StaticFilesFolderName")),
    RequestPath = "/StaticFilesFolderName"
});

然后,您应该在_Layout. cshtml文件中引用这些文件,如下所示:

<link rel="stylesheet" href="~/StaticFilesFolderName/site.css" asp-append-version="true" />
    • 注:**请查阅本正式文件。
    • 程序. cs文件:**
builder.WebHost.UseStaticWebAssets();
    • 注意:**如果您有静态文件配置,则应在program.cs文件中构建器的正下方有UseStaticWebAssets。
    • 检查基于应用程序的路径:**

如前所述,这可能是由于移动到MAC时的资源路径造成的。在这种情况下,建议在_Layout. cshtml中的基本href上使用基于相对的路径引用,然后您可以放置资源文件的其余部分。因此,如果您的资源位于wwwroot中,请将基本href放置在其他路径引用的顶部,并通过hostname/your_resource_path访问它。

<base href="~/" />

以下各项也应有效:

<base href="~/YourApp/" />
    • 注意:**如果你遇到任何css加载问题,在一些场景中需要尾部斜杠。
    • 非开发环境中的静态文件:**

还要注意非开发环境,因为Blazor应用程序在本地运行,静态Web资产仅在默认情况下在开发环境中启用。因此,要在本地开发和测试期间为开发以外的环境启用静态文件,我们必须在WebApplicationBuilder上调用UseStaticWebAssets。

    • 输出:**

相关问题