图像未显示在已发布的ASP.NET MVC网站上

时间:2011-04-09 03:18:53

标签: asp.net-mvc image iis authentication

  

可能重复:
  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问题?

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

5 个答案:

答案 0 :(得分:5)

重定向到登录页面通常指示您的IIS安全性设置为在显示指定目录的内容之前强制进行身份验证。 images子目录是即使未经身份验证的用户通常也可以看到的那些子目录之一。

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

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

答案 1 :(得分:4)

检查firebug中的路径。这是对的吗?

您是否使用帮助程序生成URL?类似的东西:

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

答案 2 :(得分:2)

我终于明白了。有问题的图像文件已加密。右键单击图像文件 - &gt;属性 - &gt;常规标签上的高级按钮 - &gt;取消选中“加密内容以保护数据” - &gt;好的 - &gt;行。

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

答案 3 :(得分:0)

我重读并发现你使用的是iis而不是casini。它在赌场工作吗?如果是,那么我们正在处理iis配置问题。有时您需要运行aspnet_regiis.exe来使用iis注册asp.net。看起来像是一个很长的镜头,因为页面的其他部分正在渲染。值得一试。以下是一些其他信息http://www.devx.com/vb2themax/Tip/18849的链接。

答案 4 :(得分:0)

只是为了踢,将一些图像放在不同的文件夹下,然后尝试查看是否可以在不进行身份验证的情况下点击它们,如果您发布了web.config

就会很好