19

Devo essere in grado di servire il mio 'index.html', sotto l'url predefinito /, utilizzando il server web Kestrel. In questo momento sono solo in grado di accedere ai miei file statici con il percorso completo cioè /index.htmlKestrel su AspNet vNext non fornisce la pagina indice sotto/

Ancora una volta questo funziona perfettamente su VisualStudio, il contesto è OSX con Kestrel

Questo è il mio avvio. cs

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

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

La soluzione che ho finora, è quello di fare un redirect all'interno di un HomeController. Ma questo è semplicemente brutto, sto cercando di servire un file html statico, che sinceramente non voglio che venga gestito dalla mia Applicazione, se possibile servito direttamente da Kestrel.

+0

Puoi pubblicare una cattura del tuo progetto? Sembra che tu non stia ingannando il pattern MVC. – CodeNotFound

risposta

38

È necessario abilitare il DefaultFilesMiddleware utilizzando UseDefaultFiles() e posizionarlo prima la chiamata a UseStaticFiles():

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

Se non si specifica in caso contrario, il middleware utilizza il DefaultFilesOptions di default, il che significa che questa lista saranno utilizzati di file predefinito nomi:

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

Vedi MSDN

+1

Questa è una buona risposta, l'ho contrassegnata come risolta, anche se non lo fa ancora per me. Il vuoto/url non sta ancora servendo. Sto ancora pensando che potrebbe essere collegato al server Kestrel in qualche modo. – Javier

+7

Prova a chiamare 'UseDefaultFiles()' * prima di * 'UseStaticFiles()'. Inoltre, vedi https://github.com/aspnet/StaticFiles/issues/10 – haim770

+1

hai capito !, ti suggerirò il commento precedente come parte della risposta – Javier

Problemi correlati