2016-12-22 111 views
2

我有一個簡單的ASP MVC項目。 在這個站點下,我需要顯示純淨的.html文件,而不會將路線視爲控制器/操作ASP MVC允許靜態HTML文件

我有文件夾文檔與文件index.html在裏面。 我需要下www.mydomain.com/documentation這個訪問,則返回403 目前它只能在www.mydomain.com/documentation/index.html

我已經加入

routes.Ignore("developers/"); 

RouteConfig.cs

Startup.cs爲OwinAppBuilder

 app.UseStaticFiles(); 

我該怎麼辦才能使用www.mydomain.com/documentation/index.html

+0

你能夠提供其他靜態文件,如.js和.png嗎?你運行的是哪個版本的IIS? – Sam07

+0

也不是Core?對於核心看到:http://stackoverflow.com/a/41093539/240564 – Alexan

+0

以及我可以實際顯示該文件,問題是,我需要明確寫入「index.html」到URL ...當我禁用所有的MVC ,並有網站運行,一切正常 – Maarty

回答

1

在你的路線設定中新增

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

在web.config中你下<system.webServer>/<handlers>從添加網站this採取

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

,如果你想了解更多關於它。

編輯:請注意,MapRoute中的網址在url中的目錄中有Public,並且在web.config行中的網址爲path。如果您的html文件不在名爲Public的目錄中,則需要更改該部分以匹配您的目錄結構。

+0

以及這樣處理路由像domain.com/documentation/index.html ..但我需要相反,我需要將像domain.com/documentation的URL轉換爲domain.com/documentation/index .html,顯示html文件 – Maarty

+0

看看這個:[http://stackoverflow.com/a/4552992/6442320](http://stackoverflow.com/a/4552992/6442320) – Sam07