2016-09-18 80 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