asp.net - 从另一个 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\Website
到D:\sites\default
. 然后它可以工作,但我认为这不是一个好的解决方案。什么是更好的解决方案,这样我就不会得到重复的图标?
我可以更改 IIS 中的某些设置,还是有办法动态创建路径?
解决方案
您可以使用图像的 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.StatusIcon
是D:\sites\SiteA\Website\imagename
。
我建议你使用 url 作为 src,因为它更简单。
推荐阅读
- python - 迭代给定目录中的文件夹/文件时出现 FileNotFoundError
- python - 为什么获取 settings.DATABASES 配置不正确。请提供 ENGINE 值。?
- hadoop - 错误委托。AbstractDelegationTokenSecretManager:ExpiredTokenRemover 收到 java.lang.InterruptedException:睡眠中断(hadoop window10)
- angular - Angular:将异步服务变量绑定到模板
- docker - 为什么从主机和容器输入时“docker stats”的结果不同?
- hadoop - hive-cli 和 presto-cli 中同一张表的时间戳不同
- python - 我想让列表中的每个 url 成为一个字符串
- reactjs - 使用 json 值反应 setstate
- mysql - MySQL 内存不足
- javascript - 对象作为 React 子对象无效(找到:带有键 {success} 的对象)。如果您打算渲染一组孩子,请改用数组