我有一个在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设置?
答案 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项目中创建虚拟目录,并将其指向带有图像的目录。但是,你应该花更多的时间来清理你的图像路径,因为它可能会在将来再次咬你。