4

在 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)
4

1 回答 1

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 标签或创建图像或其他任何内容。

于 2012-04-09T21:50:25.293 回答