Noir错误页面上显示的错误:java.io.FileNotFoundException: Could not locate boundaries/lat_long__init.class or boundaries/lat_long.clj on class path
需要它的代码:
(ns boundaries.views.boundary
(:use noir.core
hiccup.core
hiccup.page-helpers)
(:require
[boundaries.lat-long :as lat-long]
[noir.response :as resp]))
为什么要查找lat_long
而不是指定的lat-long
? boundary / lat-long.clj以及相应的boundary.lat-long命名空间。
答案 0 :(得分:4)
JVM不允许在类名中使用-
,因此Clojure编译器会将它们转换为_
s
问题最有可能是project.clj依赖项。
诊断此类问题时:
lein deps
答案 1 :(得分:0)
您需要将边界/ lat-long.clj重命名为boundary / lat_long.clj。
请注意,您不必更改命名空间名称。 clojure约定是对函数和命名空间名称使用“ - ”。
来自Stuart Sierra的回复https://stackoverflow.com/a/4451693/151650:“这是Java互操作性的必要解决方法。”