2013-06-23 11 views
6

ile başarısız oluyor Bazı Noir web sitelerini Compojure'a dönüştürüyorum.CSS, genişletilmiş yolları Compojure/Hiccup

Ben sayfanın düzenini oluşturur burada bir işlevi vardır:

(defn layout [title & content] 
    (html5 
    [:head 
    [:title "My Site | " title] 
    (include-css "css/main.css") 
    [:body 
    [:header 
    [:h1 (link-to "/" "My Site")]] 
    content])) 

Ve bu fonksiyon ve yolları ise:

(defn home-page [] 
    (layout 
    "Home" 
    [:div [:p "Home Page"]]))) 

(defn article-list [] 
    (layout 
    "Article List" 
    [:div [:p "Article List"]]))) 

(defroutes app-routes 
    (GET "/" [] (home-page)) 
    (GET "/article-list" [] (article-list)) 

Ben açtığında localhost: 3000/article- CSS kurallarının tümünü listelemek iyi çalışır.

(defn article-list [] 
    (layout 
    "Article List" 
    [:div [:p "Article List"]]))) 

(defn article-one [] 
    (layout 
    "Article One" 
    [:div [:p "Article One"]]))) 

(defroutes app-routes 
    (GET "/" [] (home-page)) 
    (GET "/article-list" [] (article-list) 
    (GET "/article-list/article-one" [] (article-one)) 

Ve localhost gidin: Ben URL yolunu genişletmek ve programı değiştirmeye çalıştığında Ancak

, 3000/makale listesinde/makale kimse, ben HTML tüm ama olsun CSS kuralları artık çalışmıyor. Sayfayı incelediğimde, css yolları < head> öğesinde bulunur, ancak sayfada stil yok.

Bu soruna bir çözüm aradım, ancak bunun üzerinde herhangi bir yazı görünmüyor.

(defroutes article-routes 
    (GET "/article-list/article-one" [] (article-one)) 

(defroutes app-routes 
    (GET "/" [] (home-page)) 
    (GET "/article-list" [] (article-list) 
    (context "article-list" [] article-routes) 

ama aynı sorun var: Ben o yüzden de yolları dışarı çekerek denedim. Genişletilmiş yolları olan sayfalarda çalışmak için CSS kurallarını nasıl alabilirim?

cevap

5

CSS'niz göreli bir yolla birlikte geliyor, yani localhost:3000/article-list/article-one'a gittiğinizde tarayıcınız CSS'yi localhost:3000/article-list/css/main.css adresinde arıyor.

Bunu düzeltmenin en kolay yolu, CSS'yi (include-css "/css/main.css") ile eklemek olabilir. Başlangıçta /, her zaman localhost:3000/css/main.css için arama yapmasını sağlayacaktır.

+0

Oh, man. Sadece bunu denedim ve hala aynı sorun var. Kıkırdamalar için, defroutes'da (rota/kaynaklar "/") yorumda bulunmuş ve ringi boşa çıkarmıştım. Ayrıca, yukarıda belirtilen hataların her iki sürümünü de denedim ve hala CSS'yi katetmiyorum. – dizzystar

+1

Bu çözüm biraz denemeden sonra işe yaradı. Sadece önbelleği temizlemeyi unutma. Teşekkürler – dizzystar