2016-09-18 139 views
2

我有相同的圖像在內容視圖文件夾。我想,如下顯示圖像:Asp.Net Mvc 5圖像不顯示

<img src="~/Content/Images/download.png" alt="Content folder" /> 
<br /> 
<br /> 
<img src="~/Views/Home/download.png" alt="Views folder" /> 
<br /> 

內容文件夾中成功地顯示圖像,但在一個文件夾視圖不顯示,並給出以下錯誤:

Failed to load resource: the server responded with a status of 404 (Not Found)

enter image description here

但實際上,資源在那裏。這裏是我的文件夾:

enter image description here

能否請你告訴我,我做這點錯了嗎?我正在使用帶有剃鬚刀引擎和Visual Studio 2015社區版的MVC 5。

+1

爲什麼你在瀏覽目錄中添加圖像:從內容文件夾圖像的

enter image description here

迴應?你應該沒有 –

+0

@EhsanSajjad,但爲什麼mvc找不到該文件? –

+0

試試這個src =「@ Url.Content(」〜/ Views/Home/download.png「)」 –

回答

2

除非你改變默認的配置,文件夾Views包含文件Web.config有此文件夾中限制對文件的訪問設置:

<system.webServer> 
    <handlers> 
     <remove name="BlockViewHandler"/> 
     <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" 
      type="System.Web.HttpNotFoundHandler" /> 
    </handlers> 
</system.webServer> 

所以,你可以刪除該處理程序(不推薦用於安全目的),或將你的靜態文件移動到其他文件夾,例如Content

2

它是因爲ASP MVC的內置安全性,可以保護您的視圖直接被訪問。從~/Views/web.config

我的建議檢查消除「BlockViewHandler」處理程序入口是移動圖像「Content」文件夾,並保持「Views」文件夾乾淨。

2

任何MVC版本不允許加載其他資源,除了來自Views文件夾的html。 因爲當你調用一個URL,它等待文本/ HTML內容類型,並且因爲主視圖文件夾內的圖像無法在頁面中呈現。

欲瞭解更多信息,請在瀏覽器(開發工具/ F12)網絡選項卡中查看文件頭文件請求和響應。從瀏覽圖像的

響應:

enter image description here