如何在db之外提供静态内容?

时间:2017-03-07 20:11:36

标签: apostrophe-cms

我试图找出如何在模块中推送静态文件(如svg或图像)而不必将其放入数据库中。 我创建了一个简单的模块,用self.apos.app.get和pushAssets定义路由,我发送js和css来渲染模板,但是如何提供在css中定义的图像或svg?我可以将它们放在prj_root / public中,但我不确定这是否是这样做的。 我试图放入my_module / public但是找不到它们

1 个答案:

答案 0 :(得分:2)

如果您在my.png中放置了名为/public/images/my.png的文件,则可以/images/my.png访问该文件。这是因为Apostrophe为express.static文件夹设置了/public中间件。

如果您在my.png中放置了名为lib/modules/mymodule/public/my.png的文件,则可以/modules/mymodule/my.png方式访问该文件。这是因为Apostrophe在/public中的每个模块的/public/modules文件夹中建立了符号链接。

(在Windows上运行时,Apostrophe会在启动时将文件复制到那里,并且为了获得微小的性能提升,我们最终可能会在Linux的生产中执行此操作,但无论哪种方式结果相同。)