从 `node_modules` 目录提供资源

Serving resources from `node_modules` dir

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

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

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

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

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

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

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

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

这是我所做的:

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

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

upd:这明明暴露了不该暴露的东西。例如现在可以通过在浏览器中导航到它来下载 project.clj。不好。

upd 2: (compojure.route/files "/" {:root "node_modules" })这次是对的。