그래서 저는 clojure n00b입니다. 작업중인 프로젝트의 경로를 얻으려고 할 때 뭔가 빠졌습니다.webnoir에서 defroutes가 작동하는 데 문제가 발생했습니다.
순환 종속성에 문제가있어 Django로 작업 한 후 defpage
과 같이 코드베이스 전체에 뿌리 내리기보다는 한 곳에서 모든 경로를 정의하는 것이 훨씬 낫다고 생각합니다. 내 루트에서 다음
(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)))
내가 다음이 파일 : 이것은 내
core.clj
파일
입니다 : 코드 상에,
(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
으로 사이트를 사용할 수 있었지만 경로 수가 늘어남에 따라 추한 것처럼 보이지 않고 확장 할 수없는 것처럼 보였습니다.
그래서
- 내가 잘못 여기서 뭐하는 거지? 기본 컴 포지/클로저/링 레이어에 대한 통찰력은 최고 일 것입니다.
- 이것이 경로를 정의하는 최선의 방법이 아니라면 무엇입니까?
- github에 큰 clj-noir 사이트의 좋은 예가 있습니까? (내 구글 - Fu는 나를 실패했습니다.) 어쩌면 당신은이 페이지를 도움이 Global Noir Routes (한 곳에서 정의하는 경로를 허용하는
defpage
매크로 변형의 구현을) 찾아 낼 것입니다
철저한 응답에 감사드립니다. 내가하고자하는 것은 뷰/공통 네임 스페이스에서 함수를 호출하는 것입니다 (간략하게 생략했습니다). 나는이 부대에 부두 코드를 추가하고보고 할 것입니다. – KyleWpppd
좋아, 그래서 그 일을하려고, 솔직히, 내가 뭘 잘못하고 있는지 말할 수 없습니다. Defroutes는 작동하는 것처럼 보이지만, 나는 다시 lein을 시작하고, 그렇지 않을 것입니다. 어떤 컴파일 문제가 있음을 의미합니다. 마지막으로 route 파일에 모든 defpages를 넣은 다음'load-views-ns'를 사용하여로드 된 라우트 파일을 가져 오는 것이 었습니다. 이것은 아마 해킹 된 솔루션 일 뿐이지 만 부끄러움에 질려있었습니다. 나는이 문제를 해결하기에 충분할만큼이 답변을 받아 들일 것입니다. – KyleWpppd