指定asp.net核心静态文件夹的默认文件名

时间:2017-02-16 16:53:54

标签: c# asp.net asp.net-mvc asp.net-core

我目前有一个生成的index.html,js和其他静态文件存在于一个文件夹中,我将该文件夹标记为静态文件夹(通过在Startup.cs中的Configure方法中添加以下内容:

   app.UseDefaultFiles();
   app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new Path.Combine(env.ContentRootPath, @"../build")),
        RequestPath = new PathString("/app/")
    });

有没有办法将index.html设置为此* / app路由的默认响应?因为现在localhost:5000 / app /返回404而localhost:5000 / app / index.html返回index.html。

编辑:我没想提到我确实尝试使用docs中提到的app.UseDefaultFiles(),但它对我不起作用。服务器仍然返回404

3 个答案:

答案 0 :(得分:3)

docs中的一条评论澄清了它:

  

Kieren_Johnstone   精选2017年5月22日

     

“提供默认文件”部分错过了一些重要的内容   信息。如果您将UseStaticFiles配置为关闭   非根RequestPath,您需要传递相同的FileProvider和   看来,请求路径同时包含UseDefaultFiles和UseStaticFiles。   你不能总是按照章节中的规定来调用它。

这意味着,您应该编写类似的内容,以使您指定的文件夹能够提供默认页面:

    app.UseDefaultFiles(new DefaultFilesOptions()
    {
        FileProvider = new Path.Combine(env.ContentRootPath, @"../build")),
        RequestPath = new PathString("/app/")
    });
    app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new Path.Combine(env.ContentRootPath, @"../build")),
        RequestPath = new PathString("/app/")
    });

答案 1 :(得分:1)

来自documentation

  

设置默认主页可为网站访问者提供启动时间   访问您的网站。为了使您的Web应用程序能够提供默认页面   如果用户不必完全限定URI,请调用   Startup.Configure中的UseDefaultFiles扩展方法如下。

SELECT
       [Name],
       [Id],
       B.Returns,
       count([Amount]) as 'Count',

FROM table1 AS A
FULL OUTER JOIN (
            SELECT
                [Id],
                count([Count]) as 'Returns'
            FROM 
                table2
            GROUP BY [Id]
) B ON A.[Id] = B.[Id]
GROUP BY [Name], [Id],B.Returns
  

必须在UseStaticFiles之前调用UseDefaultFiles来提供服务   默认文件。

答案 2 :(得分:1)

使用此:

public void Configure(IApplicationBuilder app)
{
    // Serve my app-specific default file, if present.
    DefaultFilesOptions options = new DefaultFilesOptions();
    options.DefaultFileNames.Clear();
    options.DefaultFileNames.Add("mydefault.html");
    app.UseDefaultFiles(options);
    app.UseStaticFiles();
}

有关详细信息,请访问以下链接:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files
and go to section: "Serving a default document"