19

zu dienen Ich brauche meine 'index.html' in der Lage sein, URL unter der Standard /, mit Kestrel Web-Server zu dienen. Im Moment bin ich nur in der Lage meine statischen Dateien mit dem vollständigen Pfad zugreifen dh /index.htmlKestrel auf ASPnet vNext doesnt Index-Seite unter/

Auch das funktioniert perfekt auf Visual Studio, der Kontext ist OSX mit Kestrel

Das ist mein Startup. cs

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

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

Die Lösung, die ich bisher habe, ist eine Umleitung in einem Homecontroller zu tun. Aber das ist einfach hässlich, ich versuche eine statische HTML-Datei zu erstellen, die ich ehrlich gesagt nicht möchte, dass sie von meiner Anwendung gehandhabt wird, wenn möglich direkt von Kestrel.

+0

Können Sie eine Aufnahme Ihres Projekts posten? Es scheint, als würden Sie das MVC-Muster nicht täuschen. – CodeNotFound

Antwort

38

Sie müssen die DefaultFilesMiddleware mit UseDefaultFiles() und legen Sie sie vor den Anruf zu UseStaticFiles() aktivieren:

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

Wenn Sie nicht angeben, sonst verwendet die Middleware die DefaultFilesOptions standardmäßig, die diese Liste bedeutet der Standard-Dateinamen werden verwendet:

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

Siehe MSDN

+1

Dies ist eine gute Antwort, ich markierte es gelöst, obwohl es immer noch nicht für mich tut. Die leere/URL dient immer noch nicht. Ich denke immer noch, dass es irgendwie mit dem Kestrel-Server zusammenhängen könnte. – Javier

+7

Versuchen Sie 'UseDefaultFiles()' * vor * 'UseStaticFiles()' aufzurufen. Siehe auch https://github.com/aspnet/StaticFiles/issues/10 – haim770

+1

Sie haben es total geschafft!, Ich werde den vorherigen Kommentar als Teil der Antwort vorschlagen – Javier