Asp.net mvc Can';t在asp mvc项目中从iis上的内容文件夹加载图像

Asp.net mvc Can';t在asp mvc项目中从iis上的内容文件夹加载图像,asp.net-mvc,iis,iis-7,Asp.net Mvc,Iis,Iis 7,在VisualStudio虚拟服务器中,这是可行的。但当我把网站放在IIS上时,它不会显示内容文件夹中的图像 var imgPath = '/Content/Images/Icons/' + icon + '.png'; var imageContent = '@Server.MapPath(Url.Content("-1"))'; image = imageContent.replace('-1', imgPath);

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

    var imgPath = '/Content/Images/Icons/' + icon + '.png';
                var imageContent = '@Server.MapPath(Url.Content("-1"))';
                image = imageContent.replace('-1', imgPath);
我在每个图像的浏览器中出现错误

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

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

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

<img src="@Url.Content("~/Content/Images/Icons/SomeIcon.png")"/>
继续,让MVC获取图标文件夹的路径,并将您的文件和扩展名附加到该文件夹。这将消除字符串替换的需要,并且仍然能够在JS中处理图标路径


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

我使用本地IIS。我只是将项目的属性更改为使用IIS而不是VisualStudioServer,这样图像就100%在那个里了。我也试过了,但什么都没有。事实上,如果我像html中的图像一样使用它,你的代码就可以工作。但我是用javascript写的,在javascript中我动态地将路径与图像文件名结合起来。比较JS从上面的函数输出的内容与HTML版本输出的源路径之间的差异。
var image = '@Url.Content("~/Content/Images/Icons/")' + icon + '.png';