.NET Core更改默认index.html文件的位置

5
我正在构建一个Angular 2应用程序,使用.NET Core和Webpack将我的静态资源编译成dist文件夹。 我正在使用一个插件来构建我的index.html文件,并将其放在我的wwwroot / dist文件夹中,但我不知道如何配置我的Startup.cs文件以查找dist文件夹中的默认文件。目前我的代码是这样的...
        app.UseDefaultFiles();
        app.UseStaticFiles();

在我的startup.cs文件中,但它不会使用在我的dist文件夹中生成的index.html。有什么建议需要更改吗?从我所找到的文档中,没有提供太多参考内容来解决这个问题。

谢谢。


wwwroot目录下是否存在任何内容,还是只有dist文件夹? - Travis Boatman
@TravisBoatman 我也有一个图片和图标文件夹。 - dev53
3个回答

9
您可以使用以下代码,但仅在将空的index.html放置在wwwroot文件夹的根目录下时才有效:
        app.UseDefaultFiles();
        // Serve wwwroot/dist as a root 
        app.UseStaticFiles(new StaticFileOptions() 
        {
            FileProvider = new PhysicalFileProvider(
                Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\dist"))
        });

默认情况下,RequestPath为空,因此根路径将显示wwwroot\dist文件夹中的index.html或default.html。

更新: 有一个简单而美观的解决方案可以使用Program.cs中的WebRoot来处理此问题,如下所示:

public static void Main(string[] args)
{
    var host = new WebHostBuilder()
        .UseWebRoot(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "dist"))
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .UseApplicationInsights()
        .Build();

    host.Run();
}

Startup.cs中的Configure方法中,只需使用以下内容:
    app.UseDefaultFiles();
    app.UseStaticFiles();

0
在 .NET Core 6 中,您需要通过 WebApplicationOptions 在 WebApplication.CreateBuilder 中进行配置。
var builder = WebApplication.CreateBuilder(new WebApplicationOptions { 
Args = args,
WebRootPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "dist")});

就是这样。此外,您可以更改ContentRootPath。只有这个对我有效。因此,我的空核心项目Program.cs看起来像这样:

var builder = WebApplication.CreateBuilder(new WebApplicationOptions { 
    Args = args,
    WebRootPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "dist")
});

var app = builder.Build();

app.UseDefaultFiles();
app.UseStaticFiles();

app.Run();

0

这在ASP.NET Core 3中还不够。虽然它会更改静态文件夹,但SPA仍将查找wwwroot。 - Jonathan Allen
你需要为 SPA 设置不同的选项 app.UseSpa 是配置 SPA 的好帮手 - Juergen Gutsch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接