从json响应中获取真实的图像路径

时间:2017-04-04 14:54:41

标签: javascript json api express

我有一个提供json文件的本地快速服务器。我在本地文件夹中也有很多图像文件。图像路径是我想在DOM中显示的json对象的一部分。但是我得到这些图像路径的字符串表示作为响应的一部分,我无法使用。从本地服务器向本地服务器提供本地映像的最佳方法是什么?

问题的图片enter image description here

我的服务器端配置:

app.use(express.static(path.join(__dirname, 'public')))
app.use(express.static(path.join(__dirname, 'server/img')))

我的JSON文件

{
  "Images": [{
    "title": "First Block",
    "images": ["server/img/bijay.jpg", "server/img/dance.png", "server/img/ocean.jpg"]
  }, {obj2}, {obj3}, {obj4}]
}

我的客户端代码打印图片

<ul>
  <li ng-repeat="obj in objArray"><img ng-src="{{obj.images[0]}}"></li>
</ul>
// just testing first image

我的文件夹结构:

images are inside img folder. not shown to save space

图像位于img文件夹中。这里没有显示节省空间

2 个答案:

答案 0 :(得分:2)

经过大量的反思,我找到了解决方案。

我已将服务器中的'static'文件夹定义为'server / img'。但是,在json对象中,我再次为图像文件指定了绝对路径。我需要做的只是' server / image / imgFileName.jpg'来解决冲突:))

答案 1 :(得分:1)

基于@Tolsee的评论:

将图像放在“公共”文件夹中。 (/public/img/dance.png) 然后在您的快递应用中添加以下行:

let app = express();
app.use(express.static(path.join(__dirname, 'public')));

图片将随以下网址提供:

localhost:port/img/dance.png

您可以只提供/ server / img,然后使用以下内容:

let app = express();
app.use(express.static('/server/img'));

localhost:port/dance.png

根据您的项目结构,可能需要一些配置。