目前我正在使用web api运行一个MVC 5项目,其中我使用角度js ajax调用来触发web api方法并获取图像路径但是当我在img标记中设置该路径时所以图像不显示并且在chrome控制台中消息显示无法加载本地资源。
下面是我通过ajax
调用的web api方法代码
[Route("Files")]
public List<FilesInfo> GetImages()
{
rootPath = HostingEnvironment.MapPath("~/Content/Images/");
List<FilesInfo> files = new List<FilesInfo>();
foreach (var item in Directory.GetFiles(rootPath))
{
FileInfo f = new FileInfo(item);
files.Add(new FilesInfo(){FileName=f.Name, FilePath=rootPath+f.Name});
}
return files;
}
&#13;
如果您有任何疑问,请与我们联系。
答案 0 :(得分:1)
服务器上似乎HostingEnvironment.MapPath
returns the physical path。
当您将此路径添加到src
的{{1}}属性时,浏览器会抱怨它不能使用本地本地资源。
您需要调整图片相对于您网站的路径: /img/img1.jpg
尝试:
img
这种方式[Route("Files")]
public List<FilesInfo> GetImages()
{
rootPath = "/Content/Images/";
List<FilesInfo> files = new List<FilesInfo>();
foreach (var item in Directory.GetFiles(HostingEnvironment.MapPath("~"+ rootPath);))
{
FileInfo f = new FileInfo(item);
files.Add(new FilesInfo() { FileName = f.Name, FilePath = rootPath + f.Name });
}
return files;
}
应该有本地路径,而您的System.IO.FileInfo
应该有相对网址路径,您可以使用角度来创建:FilesInfo