2016-12-22 2 views
2

Ich habe ein einfaches ASP MVC-Projekt. Unter dieser Site muss ich einfache HTML-Dateien anzeigen, ohne Routen wie Controller/Aktion zu behandeln.ASP MVC erlauben statische HTML-Dateien

Ich habe Ordner Dokumentation mit Datei index.html drin. ich diesen zugänglich unter www.mydomain.com/documentation haben müssen, gibt es 403. Derzeit ist es nur unter www.mydomain.com/documentation/index.html arbeitet

ich hinzugefügt haben

routes.Ignore("developers/"); 

in RouteConfig.cs

und in Startup.cs für OwinAppBuilder

 app.UseStaticFiles(); 

Was soll ich tun, um es zugänglich zu machen unter www.mydomain.com/documentation/index.html?

+0

können Sie andere statische Dateien wie .js und .png? Welche Version von IIS gibt es auch? – Sam07

+0

noch Core? Für Core siehe: http://StackOverflow.com/a/41093539/240564 – Alexan

+0

Nun kann ich tatsächlich die Datei anzeigen, das Problem ist, dass ich explizit "index.html" in URL schreiben muss ... wenn ich alle MVC deaktivieren , und Website läuft, funktioniert alles – Maarty

Antwort

1

In Ihrer Route Config

routes.RouteExistingFiles = true; 
routes.MapRoute(
    name: "staticFileRoute", 
    url: "Public/{*file}", 
    defaults: new { controller = "Home", action = "HandleStatic" } 
); 

In Ihrem web.config unter <system.webServer>/<handlers>

<add name="MyCustomUrlHandler2" path="Public/*" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 

von this Website Genommen hinzufügen hinzufügen, wenn Sie mehr darüber lesen möchten.

Edit: beachten Sie, dass die URL in den MapRoute das Verzeichnis Public in der URL hat, sowie in den path für die web.config Linie. Wenn sich Ihre HTML-Datei nicht in einem Verzeichnis mit dem Namen Public befindet, müssen Sie diesen Teil entsprechend Ihrer Verzeichnisstruktur ändern.

+0

gut das behandelt Routen wie domain.com/documentation/index.html .. aber ich brauche das Gegenteil, ich muss Urls wie domain.com/documentation in domain.com/documentation/index transformieren .html, um die HTML-Datei anzuzeigen – Maarty

+0

Sehen Sie dies an: [http://stackoverflow.com/a/4552992/6442320](http://stackoverflow.com/a/4552992/6442320) – Sam07