C# 如何为.net中wwwroot内多个文件夹中的html文件提供服务

C# 如何为.net中wwwroot内多个文件夹中的html文件提供服务,c#,.net,fileserver,wwwroot,C#,.net,Fileserver,Wwwroot,我在wwwroot中有多个文件夹,每个文件夹都有一个web包(VueJs/Angular/React应用程序的dist文件夹内容)。 如屏幕截图所示,在构建Vuejs应用程序后,我创建了2个文件夹并复制了dist内容 如果我将dist内容直接复制到一个应用程序的wwwroot文件夹,并导航到localhost:5000/,则该应用程序正在正确加载。 但是对于多个文件夹,当我导航到localhost:5000/page1/index.html时,浏览器控制台会显示以下错误 加载资源失败:服务器响

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

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

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

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

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

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

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

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

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

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

  • 使用
    base
    标记将根目录重置为当前位置(
    )。这属于html的
    标题


  • 我们可以通过在vue.config.js中设置-publicPath:,-来删除多余的斜杠