2

我在 wwwroot 中有多个文件夹,每个文件夹都有一个 web 包(VueJs/Angular/React App 的 dist 文件夹内容)。如屏幕截图所示,我在构建 Vuejs 应用程序后创建了 2 个文件夹并复制了 dist 内容。

wwwroot文件夹结构

如果我将 dist 内容直接复制到一个应用程序的 wwwroot 文件夹并导航到localhost:5000/,则该应用程序正在正确加载。但是有多个文件夹,当我导航到localhost:5000/page1/index.html时,浏览器控制台显示以下错误

加载资源失败:服务器响应状态为 404(未找到)

这是因为浏览器中没有加载 js 和 CSS 文件夹。

浏览器来源截图

下面是我在 Startup.cs 文件中的代码。

app.UseStaticFiles();
app.UseFileServer(new FileServerOptions
{
   EnableDirectoryBrowsing = true,
});

有人可以帮我解决这个问题吗?

4

1 回答 1

2

虽然您可以为每个单独的图像、css 或 javascript 资源获得 404 响应,但 html 文件本身不应产生该结果。相反,您应该看到页面在没有这些资源的情况下呈现,每个资源都会在您的浏览器开发人员工具中显示它自己的 404,但只有成功加载 html 之后。

有几种方法可以修复额外的缺失资源。这里有两个:

  1. 使用相对引用(img/SomeImage.png而不是/img/SomeImage.png完整的 URL)

  2. 使用base标签将根重设为当前位置 ( <base href="//localhost:5000/Page1/">)。这属于headhtml。

于 2021-03-17T21:27:04.260 回答