Kestrel on AspNet vNext не служит странице индекса в/
Мне нужно иметь возможность обслуживать мой "index.html", по умолчанию url/, используя веб-сервер Kestrel. Прямо сейчас я могу получить доступ к моим статическим файлам с полным путем i.e/index.html
Снова это отлично работает на VisualStudio, контекст - OSX с Kestrel
Это мой Startup.cs
public void ConfigureServices(DI.IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
app.UseMvc();
}
Решение, которое я имею до сих пор, заключается в том, чтобы сделать перенаправление внутри HomeController. Но это довольно уродливо, я пытаюсь служить статическому html файлу, который, честно говоря, не хочу, чтобы он обрабатывался моим Приложением, если возможно, он был подан непосредственно из Kestrel.
Ответы
Ответ 1
Вам нужно включить DefaultFilesMiddleware
с помощью UseDefaultFiles()
и поместить его до для вызова UseStaticFiles()
:
app.UseDefaultFiles();
app.UseStaticFiles();
Если вы не указали иначе, промежуточное ПО использует по умолчанию DefaultFilesOptions
, что означает, что этот список имен файлов по умолчанию будет использоваться:
default.htm
default.html
index.htm
index.html
См. MSDN