我处于这样一种情况,即我有两个站点,一个是另一个站点的子域。一个站点将图像上载到文件夹,并将对图像的引用保存到数据库,该数据库可由另一个站点访问。
我需要做的是访问两个站点中的图像。
我考虑将文件保存在公共html文件夹之外的两个站点都可访问的文件夹中,但是我不知道如何在没有显示完整服务器路径的令人讨厌的src属性的情况下引用这些图像。
谢谢
答案 0 :(得分:2)
你可以编写一个控制器动作来为它们服务:
public ActionResult Image(int id)
{
var image = ... go and fetch the image information from the database (you will need the path to the image on the server and the content type)
string path = image.Path; // could be any absolute path anywhere on your server, for example c:\foo\bar.jpg
string contentType = image.ContentType; // for example image/jpg
return File(path, contentType);
}
然后在你的观点中:
<img src="@Url.Action("Image", "SomeController", new { id = 123 })" alt="" />
将呈现为:
<img src="/SomeController/Image/123" alt="" />
其中123显然是数据库中图像记录的唯一标识符。
另外,请确保您已将您的应用程序在IIS下运行的帐户的必要权限授予您存储图像的文件夹,否则如果此文件夹位于文件夹之外,则无法读取它们应用程序根目录。