如何将图像文件名列表从Docpad传递到浏览器客户端

时间:2014-09-17 16:08:05

标签: coffeescript docpad

我想从我的Docpad项目中的目录中获取文件名列表,然后将它们传递给客户端进行预加载。做这个的最好方式是什么?

我一直在尝试从目录中提取文件名列表,然后通过文档将它们传递给客户端。

所以我有一个集合,就像在docpad.coffee中一样:

collections:
        myImages: ->
            @getFilesAtPath({relativeOutDirPath: 'images'})

然后在我的html的页脚中,我一直在尝试这样的事情:

<script>
var images = <%= @getCollection('myImages').toJSON() %>
</script>

然而,这甚至还没有接近工作。我真正想做的是将图像设置为指向文件的URL数组。但我似乎无法弄清楚如何做到这一点。 Docpad文档和查询引擎文档只是稀疏的。

有人有什么想法吗?还是有一种完全不同的方式来考虑这个问题?有没有办法将变量直接从Node / Docpad后端移交给客户端,是否需要将它与HTML一起传递?

1 个答案:

答案 0 :(得分:1)

不确定为什么要将它作为脚本分开(顺便说一句,如果你想要你可以把它真的放在一个单独的脚本中,如果它被称为js.eco)。我想这只是为了明确的分离。

这是如何运作的:

<script>
var images = [];
<%for obj in @getCollection("myImages").toJSON(): %>
    images.push('<%= obj.url %>');
<% end %>
console.log(images[0]);
</script>

所以你将拥有一个只有url的数组。我已经在控制台的第一个元素中打印出一个信息,以显示它的工作原理。