AspNet vNext 上的 Kestrel 不在 / 下提供索引页面
Kestrel on AspNet vNext doesnt serve index page under /
我需要能够使用 Kestrel Web 服务器在默认 url / 下为我的 'index.html' 提供服务。现在我只能使用完整路径访问我的静态文件,即 /index.html
这在 VisualStudio 上再次完美运行,上下文是 OSX with Kestrel
这是我的Startup.cs
public void ConfigureServices(DI.IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
app.UseMvc();
}
目前我的解决方案是在 HomeController 中进行重定向。但这很丑陋,我正在尝试提供静态 html 文件,老实说我不希望它由我的应用程序处理,如果可能的话直接从 Kestrel 提供。
您需要使用 UseDefaultFiles()
启用 DefaultFilesMiddleware
并将其放置在 之前 调用 UseStaticFiles()
:
app.UseDefaultFiles();
app.UseStaticFiles();
如果您不另外指定,中间件默认使用 DefaultFilesOptions
,这意味着将使用以下默认文件名列表:
default.htm
default.html
index.htm
index.html
见MSDN
我需要能够使用 Kestrel Web 服务器在默认 url / 下为我的 'index.html' 提供服务。现在我只能使用完整路径访问我的静态文件,即 /index.html
这在 VisualStudio 上再次完美运行,上下文是 OSX with Kestrel
这是我的Startup.cs
public void ConfigureServices(DI.IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
app.UseMvc();
}
目前我的解决方案是在 HomeController 中进行重定向。但这很丑陋,我正在尝试提供静态 html 文件,老实说我不希望它由我的应用程序处理,如果可能的话直接从 Kestrel 提供。
您需要使用 UseDefaultFiles()
启用 DefaultFilesMiddleware
并将其放置在 之前 调用 UseStaticFiles()
:
app.UseDefaultFiles();
app.UseStaticFiles();
如果您不另外指定,中间件默认使用 DefaultFilesOptions
,这意味着将使用以下默认文件名列表:
default.htm
default.html
index.htm
index.html
见MSDN