【问题标题】:Images not showing on published ASP.NET MVC Website [duplicate]图片未显示在已发布的 ASP.NET MVC 网站上 [重复]
【发布时间】:2011-04-09 03:18:52
【问题描述】:

可能重复:
Images in CSS not showing in ASP.NET MVC

我已经问过这个问题,但没有收到修复它的答案。我再次问,因为我已经尝试了所有我能想到的并且完全被卡住了。我之前的问题在这里:CSS images not showing in ASP.NET MVC

我有一个 ASP.NET MVC 应用程序,其中的图像位于 ~/image/ 目录中。当我在开发中运行它时,图像显示正常。发布时,它们根本不显示。我认为这不是参考路径问题,因为我已经尝试了 ../、./、~/ 等的所有组合。我能想到的。 css 引用、<img><asp:Image> 标记都不起作用并且都有相同的问题。我尝试在图像和所有父文件夹上编辑 Windows 安全性无济于事。

当我将鼠标悬停在 firebug 中的图像路径上时,图像预览框会旋转,好像找到了图像但无法加载。

非常奇怪的是,当我尝试直接转到图像(www.web.com/images/image.png)时,我被重定向到默认登录页面。 ASP.NET MVC 放入项目的默认帐户控制器在我的应用程序中,但我还没有实现任何登录控件。所以我认为这是身份验证的问题。或者可能是 IIS 问题?

感谢您提供的任何帮助。我已经坚持了将近一个星期,可能不得不放弃所有图像我无法对此进行排序。

【问题讨论】:

    标签: asp.net-mvc image iis authentication


    【解决方案1】:

    重定向到登录页面通常表明您的 IIS 安全设置为在显示指定目录的内容之前强制进行身份验证。 images 子目录是通常允许未经身份验证的用户可见的目录之一。

    将此添加到您的 web.config 文件中的 <configuration> 元素下,以允许不受限制地访问该目录的内容:

    <location path="images">
      <system.web>
        <authorization>
          <allow users="?"/>
        </authorization>
      </system.web>
    </location>
    

    【讨论】:

    • 感谢您的回复,但我添加了这个,仍然没有。有没有办法验证 IIS 中的图像可见性设置?
    • 我重读了您关于同一主题的其他问题。在那里,您引用了一个 images(带有 s)子目录。如果子目录是复数,您还需要将位置标签的路径部分设为复数(我已经编辑了答案以匹配)。此外,要排除 CSS 路径问题,请在您的 css 文件中尝试此操作:url('../images/bsb_header2.png')
    • @Tahbaza - 我知道这个帖子已经有将近 7 年的历史了,但是你解决了一个我已经有一个小时或更长时间的问题了!
    【解决方案2】:

    检查 firebug 中的路径。对吗?

    您是否使用帮助程序来生成 URL?比如:

    <img src='<%= Url.Content("~/images/image.png")' />
    

    【讨论】:

    • 感谢您的回复。 firebug 中的路径是正确的,我尝试使用 Url.Content,仍然没有。
    • 这解决了我的重定向问题。谢谢。
    【解决方案3】:

    我终于想通了。有问题的图像文件已加密。右键单击图像文件->属性->常规选项卡上的高级按钮->取消选中“加密内容以保护数据”->确定->确定。

    当我注意到 Windows 资源管理器中的文件名是绿色时,提示终于来了。我一直看到绿色文件名没有问题,所以我没有想到它。然后我注意到它是整个 web 应用程序文件夹中唯一的绿色文件。将 2 和 2 放在一起,它立即起作用。感谢大家的帮助。

    【讨论】:

      【解决方案4】:

      我重新阅读并看到您使用的是 iis 而不是 casini。它在赌场工作.如果是这样,那么我们正在处理 iis 配置问题。有时您需要运行 aspnet_regiis.exe 来将 asp.net 注册到 iis。由于页面的其他部分正在呈现,因此看起来很长。值得一试。这是一个包含一些附加信息的链接http://www.devx.com/vb2themax/Tip/18849

      【讨论】:

      • 谢谢!我安装了 CassiniDev 并通过它正确加载图像,所以现在我确定这是一个 IIS 问题。我会按照您的建议尝试在 IIS 上注册 asp.net 并报告,但至少我现在有一些可以依靠的东西。
      • 运行 aspnet_regiis.exe;同样的问题。现在回退到 CassiniDev,但我现在肯定知道这是一个 IIS 问题,谢谢。
      【解决方案5】:

      只是为了好玩,将一些图像放在不同的文件夹下,然后尝试看看你是否可以在无需验证的情况下点击它们,如果你发布你的 web.config 会很好

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-16
        • 2017-07-30
        • 2015-12-13
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        • 2016-10-07
        相关资源
        最近更新 更多