ASP.NET Core で、ルートパス(デフォルトページ)が要求されたときに index.html を返却する方法を書いていきます。
※ ここでのルートパスは、下のようにスラッシュで終わる URL とします。
http://localhost:xxxx/
プロジェクトの概要
動作確認のために作成したプロジェクトは以下の通りです。
プロジェクトの作成方法は、こちら に記載しています。
目次
- 対応方法
- 対応方法の補足
- 起動コードの例
- index.html の作成
- 動作確認
1. 対応方法
アプリケーションのスタートアップ時に、以下のオプションを追加します。
var opt = new DefaultFilesOptions(); opt.DefaultFileNames.Clear(); opt.DefaultFileNames.Add("index.html"); var app = builder.Build(); app.UseDefaultFiles(opt);
2. 対応方法の補足
以下のコードだけ追加すると、index.html に加えて default.html など、他の HTML を返すことがあります。
app.UseDefaultFiles();
ファイルを1つに絞りたいときは、DefaultFilesOptions を使う方法が確実です。
3. 起動コードの例
スタートアップコードの例は以下の通りです。
Program.cs
var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); var opt = new DefaultFilesOptions(); opt.DefaultFileNames.Clear(); opt.DefaultFileNames.Add("index.html"); var app = builder.Build(); app.UseDefaultFiles(opt); app.UseAuthorization(); app.MapControllers(); app.UseStaticFiles(); app.Run();
4. index.html の作成
動作確認ために、wwwroot フォルダに HTML を作成します。
wwwroot/index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Index Page</title> </head> <body> <p>Index Page.</p> </body> </html>
5. 動作確認
アプリをデバッグ実行して、以下の URL(ポート番号は可変)にアクセスします。
http://localhost:xxxx/
以下の文字列が表示されます。
Index Page.