因此,我是clojure n00b,並且在嘗試獲取我正在構建的項目的路由時錯過了某些內容。無法在webnoir中使用defroutes
我有循環依賴的一些問題,並與Django的工作後,我認爲這是更好的有路線都在一個地方定義的,而不是穿插在整個代碼庫似乎與defpage
完成。
走上代碼:
這是我core.clj
文件:
(ns blktechies-home.core
(:use compojure.core
hiccup.middleware)
(:require [compojure.route :as route]
[blktechies-home.routes :as site-routes]
[compojure.handler :as handler]
[compojure.response :as response]))
(def app
(-> (handler/site site-routes/app)
(wrap-base-url)))
在我的路線
接檔我有以下幾點:
(ns blktechies-home.routes
(:use compojure.core
noir.core
hiccup.middleware)
(:require [compojure.route :as route]
[compojure.handler :as handler]
[compojure.response :as response]
[blktechies-home.views.common :as common]))
(defroutes app
(GET "/" [] (common/main-layout
(welcome/index-page)))
(route/resources "/")
(route/not-found "<h1>NOPE</h1>"))
一切404'ing,和我我甚至不知道該從哪裏出發。我能夠使用defpage
這個網站,但它看起來很醜並且不能隨着路線數量的增長而擴展。
所以
- 我在做什麼錯在這裏?任何洞察基礎compojure/clojure/ring圖層將是非常棒的
- 如果這不是定義路線的最佳方式,那是什麼?
- github上有很多大型clj-noir站點的例子嗎? (我的谷歌福失敗了我。)
感謝您的徹底迴應。我打算做的是在views/common命名空間中調用一個函數(爲簡潔起見,我省略了它)。我將用添加的碼頭代碼進行運行並報告。 – KyleWpppd
好的,所以我試圖讓它工作,說實話,我不知道我做錯了什麼。 Defroutes似乎有效,但我會重新啓動lein,而不會。這意味着我有一些編譯問題。 最終工作是什麼只是把所有的defpages放在路由文件中,然後使用'load-views-ns'來獲取加載的路由文件。這可能是一個拙劣的解決方案,但它的工作,我厭倦了擺弄。 我打算接受這個答案,因爲它讓我足夠接近以解決問題。 – KyleWpppd