访问clojure webnoir项目中的资源文件
我正在使用Leiningen进行一个小型Clojure项目,其目录结构如下:访问clojure webnoir项目中的资源文件,clojure,leiningen,noir,Clojure,Leiningen,Noir,我正在使用Leiningen进行一个小型Clojure项目,其目录结构如下: 计划 src 试验 xxx login.clj 资源 公开的 css bootstrap.css 在test目录中的login.clj文件中,我试图在respuces/publi/css目录中读取bootstrap.css文件: (def css-file "/css/bootstrap.css") (def css-contents (slurp css-file)) 返回文件未找到错误
- 计划
- src
- 试验
- xxx
- login.clj
- xxx
- 资源
- 公开的
- css
- bootstrap.css
- css
- 公开的
(def css-file "/css/bootstrap.css")
(def css-contents (slurp css-file))
返回文件未找到错误:
线程“main”java.io.FileNotFoundException:/css/bootstrap.css(没有这样的文件或目录)中的异常,编译:(login.clj:10)
所以问题很简单,我应该怎么做才能访问文件?检查运行时实际的类路径是什么。classspath很可能引用了./resources目录,而不是./resources/public目录
尝试使用“/public/css/bootstrap.css”来解决这个问题。Slurp将从文件系统而不是类路径读取文件。因此,您试图在那里执行的操作是,您试图从文件系统的根目录中读取/css/bootstrap.css处的文件,但它不存在,正如错误消息所说的那样
如果您只是为了测试目的而读入它,那么您应该能够使用相对路径(如resources/public/css/bootstrap.css)将其读入,假设您正在项目目录下运行测试 你实际上需要使用“资源”——或者
别担心,你不是第一个被这个问题抓住的人 我真的不知道如何检查类路径[这里有点麻烦]。虽然当我使用hiccup页面助手“include css”时,例如:
(include css)/css/bootstrap.css”)
它运行得很好[我的意思是生成的html页面具有css]