ASP.NET MVC 3 - 如果在IIS 7.5上部署为应用程序,则找不到图像

时间:2011-09-13 02:52:30

标签: asp.net asp.net-mvc-3 iis-7.5

我有一个在http://localhost/上运行的ASP.NET MVC 3网站。我还有一个新项目(ASP.NET MVC3),我想将其部署为应用程序 所以网址看起来像http://localhost/child/

但我的图像有问题。如果我使用<img src="/content/img/site-logo.png" alt="logo" />创建图像 该图片不可用,因为实际网址应为/child/content/img/site-logo.png

如果我将网址放入Url.Content("~/content/img/site-logo.png"),我可以解决 但我现在不想改变我的所有图像。

这是一个更简单的解决方案吗?一些IIS 7设置?

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,但我找到了为什么强制在Contents文件夹中进行身份验证的原因。

当用户尚未登录时,它们将被归类为匿名身份验证。在IIS7中(我正在使用它,猜测它在IIS6中是相同的)您需要在功能视图中打开身份验证窗口。然后编辑匿名身份验证,使用您的应用程序池标识或默认身份验证,只需确保该用户有权读取该文件夹。

为我修好了,希望它适合你。

答案 1 :(得分:0)

  

如果我把网址放入,我可以解决它   Url.Content(“〜/ content / img / site-logo.png”)但我不想改变   我现在所有的照片。

除了将应用程序设置为在IIS网站的根目录下运行之外,我不知道任何IIS设置。

在ASP.NET MVC应用程序中处理url时,应始终使用url帮助程序。所以你真的应该改变所有硬编码的网址,顺便说一下,这不包括图片,它也可能是你的javascript文件中的锚点hrefs,表单动作,硬编码网址,...

答案 2 :(得分:0)

您可以在root iis项目中创建虚拟目录,并将其指向带有图像的目录。但是,你应该花更多的时间来清理你的图像路径,因为它可能会在将来再次咬你。