如何修改launchSettings.json以指向index.html

时间:2018-01-14 23:41:38

标签: asp.net iis asp.net-core visual-studio-2017 .net-core

我主要是ASP.NET Core的新手。我创建了一个Web API模板并设置了一个控制器,然后在wwwroot下手动创建了以下目录结构:

wwwroot/
  css/
    site.css
  js/
    site.js
  index.html

当我点击F5时,我想在浏览器中启动index.html。但是,我无法弄清楚如何做到这一点。这是我的launchSettings.json

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:63123/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "index.html",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
}

当我运行" IIS Express"在Chrome中命令,我得到"找不到网址的网页:http://localhost:63123/index.html"。为什么会这样?

我的应用的完整来源可在此处找到:https://github.com/jamesqo/Decaf/tree/webapp-2/Decaf.WebApp

2 个答案:

答案 0 :(得分:2)

我下载了您的代码,并将您的launchsettings文件更改为完全限定的网址:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseStaticFiles();

    app.UseMvc();
}

我还修改了你的StartUp.cs添加(app.UseStaticFiles();),它现在似乎有效:

absolute = absolute + (walk**2)**(1/2.0)

运行结果:

enter image description here

答案 1 :(得分:1)

您需要将.UseContentRoot添加到Program.cs文件的BuildWebHost方法中,如下所示:

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .Build();

然后,通过将.UseStaticFiles()添加到Startup类中的Configure方法,将程序配置为使用静态文件。您还需要配置MVC中间件以侦听和处理传入请求。您可以在app.UseMvc()中看到我在哪里配置路由。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles();

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

最后,导航到http://localhost:63123/index.html,您应该很高兴。