从硬盘内剃刀视图渲染图像
本文关键字:图像 视图 剃刀 硬盘 | 更新日期: 2023-09-27 17:49:21
我有一堆文件夹,其中每个文件夹都存储在我的本地磁盘上。该路径在web中被引用。配置,所以有一天当我把项目放到网上时,我可以很容易地改变这个文件夹的路径。
<add key="MyImagesFolder" value="E:'MyImages'" />
然后将这个值加载到razor视图中,然后使用img src
显示图像@{
string imagesFolder = ConfigurationSettings.AppSettings["MyImagesFolder"].ToString();
foreach (var item in @Model.Images) {
<img src="@imagesFolder/@item.FilePath" alt="@item.Description" />
}
}
image SRC值在调试中捕获
E:''MyImages''100/1.jpg
其中100表示MyImages文件夹下的文件夹。
图片根本不渲染。
我做错了什么?
您正在呈现带有src属性的html img标记,这些属性指向服务器文件系统上的图像路径。src属性必须包含来自web应用程序的url,这将提供一种通过HTTP协议访问HTTP客户端(web浏览器)的图像的方法。
src属性需要看起来像:
http://yourwebserver/yourapp/images/1.jpg
或相对url:
./yourapp/images/1.jpg
问题是web浏览器没有任何方法直接抓取到您的web服务器文件系统
一个可能的解决方案是将你的images文件夹放入MVC项目中,并呈现相对的url到你的img标签的src属性。
如果你只需要在与web服务器相同的机器上运行你的web客户端,你渲染src属性的方式也是有效的,但是在web服务器之外运行的客户端将看不到图像。如果您要经历这条路径,您仍然需要使用文件模式(即
)将这些src属性呈现为url。file:///c:/images/1.jpg
见http://en.wikipedia.org/wiki/File_URI_scheme