从`node_modules`目录提供资源

时间:2016-03-22 01:12:15

标签: clojure clojurescript leiningen compojure

我想从项目根目录中的node_modules目录提供文件。

所以例如我在我的页面中添加了这个:

[:link {:href "/font-awesome/css/font-awesome.css" :rel "stylesheet" :type "text/css"}]

现在我需要告诉compojure静态地提供node_modules目录中的任何内容,我找不到方法。

如果我将node_modules移动到resources/public dir,它会起作用,但我不希望这样。我需要找到一种方法来从项目目录中的任何位置提供文件(在本例中来自./node_modules

我尝试将:resource-paths ["node_modules"]添加到profiles.clj

我试过了(compojure.route/resources "node_modules" {:root "../.." }), 仍然没有奏效。

2 个答案:

答案 0 :(得分:2)

这就是我所做的:

:resource-paths ["node_modules"]添加到project.clj - take a look at leiningen's sample

然后(compojure.route/resources "/" {:root "" })。似乎有效。

upd :这显然暴露了不应该暴露的事物。例如现在可以通过在浏览器中导航到project.clj来下载(compojure.route/files "/" {:root "node_modules" })。不好。

更新2 :{{1}}这次是正确的。

答案 1 :(得分:-1)

将文件符号链接或在静态文件中的某些内容中使用@import以包含您的字体真棒css。我还没有尝试过这个,但您也可以创建一个project_root / special_css文件夹并将其添加到project.clj中的css-dirs或尝试将特殊文件本身添加到向量中(不确定是否可行) )。