2012-04-09 46 views
4

在这部作品中的视觉工作室虚拟服务器加载从文件夹中的内容在IIS上的图像。但是,当我把网站放在IIS上时,它不会显示来自内容文件夹的图像。不能在ASP MVC项目

var imgPath = '/Content/Images/Icons/' + icon + '.png'; 
       var imageContent = '@Server.MapPath(Url.Content("-1"))'; 
       image = imageContent.replace('-1', imgPath); 

我得到了浏览器的foreach图像错误

http://localhost/Content/Images/Icons/carwash.png Failed to load resource: the server responded with a status of 404 (Not Found) 

回答

4

的第一件事是第一次,你确定所有的“图标”是解决方案的一部分,实际上是被部署到Web服务器?我有少数情况下,我想将文件添加到解决方案目录和VS不会自动包括它的解决方案,因此从来没有真正得到部署...

如果是OK和图片实际上是有,我的下一个问题是,你有没有尝试过使用视图中的@Url.Content助手,以确定是否是因为它的工作应注意什么?

<img src="@Url.Content("~/Content/Images/Icons/SomeIcon.png")"/> 

编辑

既然你想在Javascript中做到这一点和上面的标签在HTML工作,你应该能够凝聚这些代码在那里下面的代码:

var image = '@Url.Content("~/Content/Images/Icons/")' + icon + '.png'; 

来吧,让MVC获得路径图标文件夹和文件,并扩展追加到。这应该消除字符串替换的需要,并且仍然能够处理JS中的图标路径。

var image现在将是你通过这个功能的图标文件的完整相对路径。你可以使用这个字符串来更新和IMG SRC标签或创建一个图像或任何。

+0

我使用本地IIS。我只是改变项目的属性,以使用IIS而不是Visual Studio服务器,因此图像100%在那里。我也试过,但没有。 – 1110 2012-04-09 22:16:22

+0

其实你的代码如果在html中使用它就像图像一样。但我写在javascript中,我动态地结合路径和图像文件名。 – 1110 2012-04-09 22:27:48

+0

比较上面的函数JS输出的内容和HTML版本输出差异的源路径。 – Tommy 2012-04-09 23:09:26