2013-06-23 6 views
6

में विस्तारित पथों के साथ विफल रहता है मैं कुछ नोयर वेबसाइटों को कंपोज़र में परिवर्तित कर रहा हूं।सीएसएस कंपोज़र/हिचक

मैं एक समारोह है कि यहाँ पेज के लेआउट बनाता है:

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

और यह समारोह और मार्गों है:

(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)) 

जब मैं खोल स्थानीय होस्ट: 3000/article- सभी सीएसएस नियमों की सूची ठीक काम करें।

हालांकि, जब मैं URL पथ का विस्तार करने और करने के लिए कार्यक्रम बदलने का प्रयास:

(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)) 

और स्थानीय होस्ट करने के लिए जाना: 3000/लेख-सूची/लेख-एक, मैं HTML के सभी लेकिन मिल सीएसएस नियम अब काम नहीं करते हैं। जब मैं पृष्ठ का निरीक्षण करता हूं, तो सीएसएस पथ < हेड> तत्व में शामिल होते हैं लेकिन पृष्ठ पर कोई शैलियों नहीं हैं।

मैंने इस मुद्दे का समाधान खोजा है, लेकिन इस पर कोई लेखन प्रतीत नहीं होता है। मैं भी मार्गों बाहर खींच की कोशिश की है, ताकि मैं है:

(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) 

लेकिन मैं एक ही मुद्दा है। विस्तारित पथ वाले पृष्ठों पर काम करने के लिए मैं सीएसएस नियम कैसे प्राप्त कर सकता हूं?

उत्तर

5

आपका सीएसएस एक सापेक्ष पथ के साथ शामिल किया जा रहा है, जिसका अर्थ है कि जब आप localhost:3000/article-list/article-one पर जाते हैं तो आपका ब्राउज़र localhost:3000/article-list/css/main.css पर सीएसएस की तलाश में है।

इसे ठीक करने का सबसे आसान तरीका सीएसएस को (include-css "/css/main.css") के साथ शामिल करना होगा। शुरुआत में / यह सुनिश्चित करेगा कि यह हमेशा localhost:3000/css/main.css की खोज करेगा।

+0

ओह, मैन। मैंने अभी कोशिश की और अभी भी एक ही मुद्दा है। गिगल्स के लिए, मैंने डिफ्रॉउट्स और रीलोडेड रिंग में किसी भी लाभ के लिए (मार्ग/संसाधन "/") टिप्पणी की। मैंने उपरोक्त पोस्ट किए गए डिफ्रॉउट्स के दोनों संस्करणों को भी आजमाया और यह अभी भी सीएसएस को कैथिंग नहीं कर रहा है। – dizzystar

+1

इस समाधान ने कुछ कोशिश करने के बाद काम किया। बस कैश साफ़ करने के लिए मत भूलना। धन्यवाद – dizzystar