无法在asp mvc项目中从iis上的Content文件夹加载图像

时间:2012-04-09 21:07:51

标签: asp.net-mvc iis iis-7

在visual studio虚拟服务器中,这可行。但是,当我在IIS上放置网站时,它不会显示内容文件夹中的图像。

    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)

1 个答案:

答案 0 :(得分:4)

首先,您确定所有“图标”都是解决方案的一部分,并且实际上是部署到您的Web服务器上吗?我有一些实例,我会在解决方案目录中添加一个文件,而VS不会自动在其中包含解决方案,因此它实际上从未部署过......

如果没有问题并且图片实际存在,我的下一个问题是,您是否尝试过在视图中使用@Url.Content帮助程序来确定它是否正常工作?

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

修改

由于您尝试在Javascript中完成此操作并且上述标记在HTML中工作,您应该能够将该代码压缩到以下代码:

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

继续,让MVC获取Icon文件夹的路径,并将文件和扩展名附加到该文件夹​​。这应该消除了对字符串替换的需要,并且仍然能够处理JS中的图标路径。

var image现在将成为您传递给此函数的图标文件的完整相对路径。您可以使用此字符串更新和img src标记或创建图像或其他任何内容。