如何在dotnet core web api中设置启动页面?

时间:2016-11-17 04:36:26

标签: asp.net-web-api asp.net-core .net-core

我尝试使用dotnet core web api构建一个Web应用程序,但我不知道如何将index.html设置为起始页面,这可以通过dotnet framework web api轻松完成。我尝试使用app.UseDefaultFiles();app.UseStaticFiles();来解决这个问题,然而,它没有用。

9 个答案:

答案 0 :(得分:43)

在launchSettings.json中,您可以定义launchUrl

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

答案 1 :(得分:26)

如果您使用静态文件作为默认页面,以下代码可以为您提供帮助。

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

如果您正在使用MVC视图,只需添加路由角色即可。

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

答案 2 :(得分:16)

使用

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

是正确的方法。但始终在UseDefaultFiles()之前使用UseStaticFiles 否则它就不会起作用。

供参考:Core fundamentals of Static Files

答案 3 :(得分:7)

您的index.html文件必须位于wwwroot文件夹

  

wwwroot / index.html

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

答案 4 :(得分:6)

对于Asp.Net Core 2.1,只需右键单击项目->属性->调试 并在“启动浏览器”复选框旁边,将路径设置为所需的启动页面。

答案 5 :(得分:5)

您可以使用startup.cs中的options.DefaultFileNames.Add将wwwroot下的任何文件夹中的任何文件设置为defaut文件。

例如,在wwwroot / folder1 / folder2 / myfile.html中使用myfile.html,您将在Startup.cs中添加它。

     options.DefaultFileNames.Clear();
            options.DefaultFileNames.Add(&#34; folder1 / folder2 / myfile.html&#34;);
            app.UseDefaultFiles(选项);
            app.UseStaticFiles();

但有一段时间它可能无效。例如 我创建了项目文件菜单&gt;新&gt;项目,然后选择.NET Core&gt; ASP.NET Core Web Application和选定的Web Api作为项目模板。 F5总是打开页面api /值,即使我在wwwroot文件夹中添加了index.html并在 startup.cs

中添加了以下内容
DefaultFilesOptions options = new DefaultFilesOptions();
                options.DefaultFileNames.Clear();
                options.DefaultFileNames.Add("mypage.html");
                app.UseDefaultFiles(options);
               app.UseStaticFiles();

然后我 打开了项目属性 页面并删除了 调试/启动浏览器框 中的值(这是设置为api /值) 现在启动页面设置正常,mypage.html是启动页面。请注意,由于您选择使用静态文件,因此该页面应位于wwwroot文件夹中。

答案 6 :(得分:2)

对于Asp.Net Core 2.2,右键单击“项目”→“属性”→“调试”,然后在“启动浏览器”复选框旁边设置所需的启动页面的路径。

Project VS

答案 7 :(得分:0)

如果Index.html在项目根目录中,则默认情况下会发送。

答案 8 :(得分:0)

对于dotnet核心Web API 3.1,在launchSettings.json文件集"launchUrl": "swagger/index.html",