我正在构建lein new compojure-app
模板。我有一条通往/
的路线,工作正常,以及通往/foo/
的路线。在两个页面之间,只有身体发生变化,所以我想尽可能多地坚持使用公共视图功能(我使用common
中的默认views/layout.clj
。但是,当按相对路径投放资源时,例如css/main.css
,我到/
的路由正常,但到/foo/
的路由正在寻找/foo/css/main.css
而不是查找根目录。如何使用到任意路由的相对路径来提供静态资源?
答案 0 :(得分:3)
您需要使用wrap-base-url
中间件和include-css
。 wrap-base-url
将设置*base-url*
动态var,用于为include-css
,include-js
或to-url
直接使用的资源构建网址。
如果您将应用程序部署为servlet容器中的war,wrap-base-url
将自动检测您的应用程序根上下文(例如/my-app/
)。否则,您需要手动提供根路径作为第二个参数。