Web開発など

Java, JS, CSS, HTML, Unity, C# のことなどを書いてます。フリーソフトの公開もしています。

ASP.NET Core:ルートパスでindex.htmlを返す

ルートパスが要求されたときに、index.htmlを返却する方法を書いていきます。

※ ここでのルートパスは、下のように / で終わる URL とします。

http://localhost:xxxx/

対応方法1

アプリケーションのスタートアップに、以下のコードを追加します。

app.UseDefaultFiles();

ただ、この方法だと index.html だけではなく、default.html など、他の HTML を返すことがあるみたいです。

対応方法2

ルートパスの要求に対して、返却する HTML を1つに絞りたい場合は、以下のコードを追加すると良さそうです。

var opt = new DefaultFilesOptions();
opt.DefaultFileNames.Clear();
opt.DefaultFileNames.Add("index.html");
app.UseDefaultFiles(opt);

スタートアップの例

スタートアップコードの例は以下の通りです。

Program.cs

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.

var opt = new DefaultFilesOptions();
opt.DefaultFileNames.Clear();
opt.DefaultFileNames.Add("index.html");
app.UseDefaultFiles(opt);

app.UseStaticFiles();

app.UseAuthorization();

app.MapControllers();

app.Run();

参考文献

ASP.NET Core の静的ファイル - Microsoft