我目前有一个生成的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
答案 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)
设置默认主页可为网站访问者提供启动时间 访问您的网站。为了使您的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"