【问题标题】:Asp.Net Mvc 5 image not displayingAsp.Net Mvc 5 图像不显示
【发布时间】:2017-01-26 03:55:15
【问题描述】:

我在 ContentViews 文件夹中有相同的图像。我正在尝试显示如下图像:

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

Content 文件夹中的图像显示成功,但 Views 文件夹中的图像不显示并出现以下错误:

加载资源失败:服务器响应状态为 404 (未找到)

但实际上,资源就在那里。这是我的文件夹:

你能告诉我哪一点我做错了吗?我正在使用 MVC 5 和 razor 引擎和 Visual Studio 2015 社区版。

【问题讨论】:

  • 为什么要在 Views 目录中添加图像?你不应该
  • @EhsanSajjad,但为什么 mvc 找不到文件?
  • 试试这个 src="@Url.Content("~/Views/Home/download.png")"
  • @M.Azad,没用
  • 因为views文件夹不是为了那个目的

标签: c# asp.net asp.net-mvc razor asp.net-mvc-5


【解决方案1】:

除非您更改了默认配置,否则文件夹 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”文件夹干净。

    【讨论】:

      【解决方案3】:

      任何 MVC 版本不允许从 Views 文件夹加载除 html 之外的其他资源。 因为当您调用 URL 时,它会等待 text/html 内容类型,并且由于主 Views 文件夹中的图像无法在页面中呈现。

      如需了解更多信息,请在浏览器(开发工具/F12)网络选项卡中查看文件标头请求和响应

      来自视图的图像响应:

      来自内容文件夹的图像响应:

      【讨论】:

        【解决方案4】:

        在 .net core 3 中,您还需要在 startup.cs 中的以下行

        app.UseStaticFiles(new StaticFileOptions
                    {
                        FileProvider = new PhysicalFileProvider(
                        Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images")),
                        RequestPath = "/wwwroot/images"
                    });
        

        【讨论】:

        • 它有效,实际上,您应该将@"wwwroot\images" 更改为@"wwwroot/images"
        【解决方案5】:

        &lt;img src="@Url.Content("~/Views/Home/download.png")" alt="Views folder" /&gt;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-08-25
          • 1970-01-01
          • 2015-11-13
          • 1970-01-01
          • 2021-12-14
          • 2016-09-23
          • 2021-12-09
          • 1970-01-01
          相关资源
          最近更新 更多