首页 > 解决方案 > 从另一个 URL 接近时找不到图像文件的相对路径

问题描述

在 IIS 中,我有 2 个站点:默认和 SiteA(绑定到不同的端口) SiteA(ASP.Net)在另一个端口(http://myurl:99)上接近时工作正常。默认站点包含指向 SiteA 的链接:(http://myurl/SiteA)。通过默认站点上的链接打开页面时,图标丢失。

在 .cshtml 文件中它说

<td><img class="statusicon" src="@item.StatusIcon" /></td>

其中item.StatusIcon包含相对路径,例如:.\\Images\\Running.png. 显然,当通过默认站点上的链接加载页面时,当前目录指向D:\sites\default,而当前目录是D:\sites\SiteA\Website通过端口 99 访问时。

我可以将图像文件夹从复制D:\sites\SiteA\WebsiteD:\sites\default. 然后它可以工作,但我认为这不是一个好的解决方案。什么是更好的解决方案,这样我就不会得到重复的图标?

我可以更改 IIS 中的某些设置,还是有办法动态创建路径?

标签: asp.netiis

解决方案


您可以使用图像的 url 来替换物理路径。

<img class="statusicon" src="http://myurl.com:801/sierra2.jpg" />

在此处输入图像描述

如果你坚持使用物理路径,我们假设你的应用有上传图片和设置model.StatusIcon为路径的功能。上传图片并保存时,可以将路径设置为绝对路径。

String path="D:\sites\SiteA\Website\"+file.FileName,
Model.StatusIcon=path;

然后@item.StatusIconD:\sites\SiteA\Website\imagename

我建议你使用 url 作为 src,因为它更简单。


推荐阅读