【问题标题】:CSS fails with extended paths in Compojure / HiccupCSS 因 Compojure / Hiccup 中的扩展路径而失败
【发布时间】:2013-06-23 14:27:33
【问题描述】:

我一直在将一些 Noir 网站转换为 Compojure。

我这里有一个创建页面布局的函数:

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

当我打开 localhost:3000/article-list 时,所有 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))

然后转到 localhost:3000/article-list/article-one,我得到了所有的 HTML,但 CSS 规则不再起作用。当我检查页面时,css 路径包含在

元素中,但页面上没有样式。

我已经寻找解决此问题的方法,但似乎没有任何关于此的文章。我也试过拉出路线,这样我就有了:

(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 规则在具有扩展路径的页面上工作?

【问题讨论】:

    标签: clojure compojure hiccup


    【解决方案1】:

    您的 CSS 包含在相对路径中,这意味着当您转到 localhost:3000/article-list/article-one 时,您的浏览器正在寻找位于 localhost:3000/article-list/css/main.css 的 CSS。

    解决此问题的最简单方法是将 CSS 包含在 (include-css "/css/main.css") 中。开头的/ 将确保它始终搜索localhost:3000/css/main.css

    【讨论】:

    • 哦,伙计。我刚试过这个,仍然有同样的问题。对于傻笑,我在 defroutes 中注释掉了 (route/resources "/") 并重新加载了环,但无济于事。我还尝试了上面发布的两个版本的 defroutes,但仍然没有 cathcing CSS。
    • 经过一番尝试,这个解决方案确实奏效了。只是不要忘记清除缓存。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多