web-dev-qa-db-ja.com

ドットネットコアWeb APIでスタートページを設定する方法

Dotnet core web apiを使用してwebアプリケーションを構築しようとしましたが、dotnet framework web apiで簡単に実行できるindex.htmlを開始ページとして設定する方法がわかりません。そして、app.UseDefaultFiles();app.UseStaticFiles();を使用してこの問題を解決しようとしましたが、うまくいきませんでした。

32
code_farmer

静的ファイルをデフォルトページとして使用している場合、次のコードが役立ちます。

 app.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new 
     List<string> { "index.html" } });

MVCビューを使用している場合は、ルーティングロールを追加するだけです。

app.UseMvc(routes =>
   {
       routes.MapRoute(
           name: "default",
           template: "{controller=Home}/{action=Index}");
   });
33
Alex Zhang

LaunchSettings.jsonでは、launchUrlを定義できます

  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
    "launchBrowser": true,
    "launchUrl": "<your relative URL here>",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
52
Floris

を使用して

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

正しい方法です。ただし、UseStaticFilesの前に必ずUseDefaultFiles()を使用してください。そうしないと機能しません。

参考: 静的ファイルのコアの基礎

20

Index.htmlファイルはwwwrootフォルダーにある必要があります

wwwroot/ index.html

https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/static-files

9
pampi

Asp.Net Core 2.1の場合は、プロジェクト->プロパティ->デバッグを右クリックし、「ブラウザーの起動」チェックボックスの横に、目的のスタートアップページへのパスを設定します。

7
grabhints

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フォルダーにある必要があります。

5
Zeni

Index.htmlがプロジェクトルートにある場合、デフォルトで送信されます。

0
alex kostin