尝试在ASP.NET Core项目中提供Index.html,在其他地方提供/ api / values

时间:2018-01-08 05:12:23

标签: asp.net-core asp-net-core-spa-services

我有一个SPA应用,我已经加载到我的/ wwwroot目录中,它有一个我想要默认加载的index.html文件。然后我想要正常的控制器文件工作。这是控制器应该运行的默认值。以下是我的创业公司。它确实呈现wwwroot / index.html但是/ api / values不起作用(除非我注释掉UseStaticFiles,然后index.html没有)。

如何同时加载index.html以及值控制器才能工作。

startup.cs

public void Configure(
        IApplicationBuilder app)
    {
        DefaultFilesOptions options = new DefaultFilesOptions();
        options.DefaultFileNames.Clear();
        options.DefaultFileNames.Add("index.html");
        app.UseDefaultFiles(options);
        app.UseStaticFiles();
        app.UseMvc();
    }

值控制器......

[Route("api/[controller]")]
public class ValuesController : Controller
{
    // GET api/values
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

1 个答案:

答案 0 :(得分:0)

以下似乎解决了我的问题。

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

        DefaultFilesOptions options = new DefaultFilesOptions();
        options.DefaultFileNames.Clear();
        options.DefaultFileNames.Add("index.html");


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

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

为了测试它,我添加了wwwroot/index.html和一个简单的/home/contact控制器和视图类(没有/home/index控制器或视图)。