2015-11-02 132 views
0

鑑於 我有一個當前的MVC網站,但需要添加對非MVC內容的支持。特別是SandCastle幫助文件生成器幫助Web內容的輸出。如何將非MVC(html內容)添加到MVC網站?

什麼一直試圖從S.O.

以下提示我使用Empty Template創建了一個新的MVC網站,只是爲了瞭解它是如何完成的,我創建了HTML網站中的所有文件夾並通過複製文件填充了內容。我確信圖片構建行動是內容,複製如果更新。

有在MVC站點中沒有控制器,所以我不得不改變Route.Config文件,如下所示:

routes.MapRoute(
name: "Default", 
url: "{controller}/{action}/{id}", 
defaults: new { action = "Index", id = UrlParameter.Optional } 

行動=「指數」解決index.html,然後它填充的所有網頁。注意上面的MapRoute中沒有控制器。

但圖片不顯示,我相信這與路由有關。 從每個圖像頁面加載後的Get看起來是這樣的:

Request URL:http://TheSite/media/SomeImage.PNG 

如果媒體是在圖像所在的文件夾。

產生這種聯繫是這個實際的HTTP內容...

../media/TestDrillDown.PNG 

的sites'index.html具有SHFB本聲明。

<script type="text/javascript"> 
    window.location.replace("html/1bb0066d-655c-4883-8045-81f006f3adc8.htm") 
</script> 

它在瀏覽器中重定向到該頁面,自動正確顯示內容。

URL:http://localhost:50212/html/1bb0066d-655c-4883-8045-81f006f3adc8.htm 

問題 我必須做的就是圖像顯示和停止顯示404(未找到)錯誤。

什麼沒有奏效

routes.IgnoreRoute({"{resource}.png"); 
routes.IgnoreRoute({"media/{resource}.png"); 
routes.IgnoreRoute({"../media/{resource}.png"); 
routes.IgnoreRoute({"{resource}.{*png}"); 

回答

0

我是一個假人,當我在PNG圖像複製不知何故,我沒有讓他們所有,一旦做了,並且使用索引上面的配置。 html文件發現它們...這很有趣,這是我的想法...

Index.html頁面中的重定向鏈接到存在於MVC站點中的/ html文件夾,其中沒有控制器。/html文件夾中的文件引用了圖像「../media/image.png」,該文件對於文件夾結構是正確的。這些圖像的返回「獲取」作爲「/media/image.png」返回,這確實是正確的,因爲image.png位於根目錄下的媒體文件夾中......所以只需要上面的映射即可。沒有忽視的路線和沒有控制器....我現在有一個新的問題,但我會發佈一個新的問題。謝謝!

1

您可以嘗試添加<location>...</location>配置元素爲您的媒體文件夾,啓用匿名身份驗證。像這樣的事情在你的web.config:

<location path="media"> 
    <system.web> 
     <authorization> 
      <allow users ="*" /> 
     </authorization> 
    </system.web> 
</location> 
+0

謝謝艾米......我現在才發現問題,看了整整一天後...... –

相關問題