不允许加载本地资源

时间:2016-04-27 05:19:35

标签: angularjs asp.net-mvc-4 asp.net-web-api2

目前我正在使用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;
&#13;
&#13;

如果您有任何疑问,请与我们联系。

1 个答案:

答案 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