从 `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" })
这次是对的。
我想提供项目根目录中 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" })
这次是对的。