19

下的索引頁面我需要能夠使用Kestrel web服務器在默認網址/下服務我的'index.html'。現在我只能夠進入我的靜態文件的完整路徑,即/index.htmlAspnet上的紅隼vNext不服務於/

同樣,這完美的作品上的VisualStudio,上下文是OSX與Kestrel的

這是我啓動。 CS

public void ConfigureServices(DI.IServiceCollection services) 
{ 
    services.AddMvc(); 
} 

public void Configure(IApplicationBuilder app) 
{ 
    app.UseStaticFiles(); 
    app.UseMvc(); 
} 

的解決方案,我有這麼遠,就是做一個HomeController的內部重定向。但這很簡單,我試圖提供一個靜態html文件,我真的不希望它被我的應用程序處理,如果可能的話直接從Kestrel處理。

+0

你可以發佈你的項目的捕獲嗎?看起來你並不是愚蠢的MVC模式。 – CodeNotFound

回答

38

你需要使用UseDefaultFiles()啓用DefaultFilesMiddleware,並把它之前調用UseStaticFiles()

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

如果沒有另行指定,中間件採用DefaultFilesOptions默認情況下,這意味着該列表默認的文件名稱將用於:

default.htm 
default.html 
index.htm 
index.html 

MSDN

+1

這是一個很好的答案,我將其標記爲已解決,但它仍然不適合我。空/網址仍未投放。我仍然認爲它可能與Kestrel服務器有關。 – Javier

+7

嘗試在* UseStaticFiles()之前調用'UseDefaultFiles()'*。另外,請參閱https://github.com/aspnet/StaticFiles/issues/10 – haim770

+1

你完全瞭解它,我會建議以前的評論作爲答案的一部分 – Javier