我一直在將一些Noir網站轉換爲Compojure。CSS在Compojure/Hiccup中延遲路徑失敗
我這裏有一個功能,創建頁面的佈局:
(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 /物品─列出所有的CSS規則工作正常。
然而,當我試圖延長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,但CSS規則不再有效。當我檢查頁面時,css路徑包含在< head>元素中,但頁面上沒有樣式。
我已經搜索瞭解決這個問題的方法,但似乎沒有任何關於此的文章。我也嘗試拉出路線,讓我有:
(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)
但我有同樣的問題。我怎樣才能讓CSS規則在具有擴展路徑的頁面上工作?
噢,夥計。我剛剛嘗試過,仍然存在相同的問題。對於咯咯的笑聲,我在defroutes中註釋掉了(route/resources「/」)並重新加載了ring,但無濟於事。我也嘗試了上面發佈的兩個版本的defroutes,但它仍然沒有任何CSS。 – dizzystar
這個解決方案經過一番嘗試後確實有效。只要不要忘記清除緩存。謝謝 – dizzystar