Dotnet core web apiを使用してwebアプリケーションを構築しようとしましたが、dotnet framework web apiで簡単に実行できるindex.htmlを開始ページとして設定する方法がわかりません。そして、app.UseDefaultFiles();app.UseStaticFiles();
を使用してこの問題を解決しようとしましたが、うまくいきませんでした。
静的ファイルをデフォルトページとして使用している場合、次のコードが役立ちます。
app.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new
List<string> { "index.html" } });
MVCビューを使用している場合は、ルーティングロールを追加するだけです。
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}");
});
LaunchSettings.jsonでは、launchUrlを定義できます
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "<your relative URL here>",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
を使用して
app.UseDefaultFiles();
app.UseStaticFiles();
正しい方法です。ただし、UseStaticFiles
の前に必ずUseDefaultFiles()
を使用してください。そうしないと機能しません。
参考: 静的ファイルのコアの基礎
Index.htmlファイルはwwwrootフォルダーにある必要があります
wwwroot/ index.html
https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/static-files
Asp.Net Core 2.1の場合は、プロジェクト->プロパティ->デバッグを右クリックし、「ブラウザーの起動」チェックボックスの横に、目的のスタートアップページへのパスを設定します。
Startup.csのoptions.DefaultFileNames.Addを使用して、wwwrootの下の任意のフォルダー内のファイルをデフォルトのファイルとして設定できます。
たとえば、wwwroot/folder1/folder2/myfile.htmlでmyfile.htmlを使用するには、これをStartup.csに追加します。
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add( "folder1/folder2/myfile.html");
app.UseDefaultFiles(options);
app.UseStaticFiles();
しかし、しばらく動作しない場合があります。たとえば、プロジェクトの[ファイル]メニュー> [新規作成]> [プロジェクト]を作成し、[。NET Core]> [ASP.NET Core Webアプリケーション]を選択し、プロジェクトテンプレートとして[Web Api]を選択しました。 F5は、www.rootフォルダーにindex.htmlを追加し、startup.csに以下を追加したにもかかわらず、常にページapi/valuesを開きます
DefaultFilesOptions options = new DefaultFilesOptions();
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("mypage.html");
app.UseDefaultFiles(options);
app.UseStaticFiles();
次に、I プロジェクトのプロパティページを開き、Debugの値を削除しました/ Launch browser box(api/valuesに設定されていました)スタートアップページの設定が機能し、mypage.htmlがスタートアップページになりました。静的ファイルの使用を選択したため、このページはwwwrootフォルダーにある必要があります。
Index.htmlがプロジェクトルートにある場合、デフォルトで送信されます。