【发布时间】:2013-10-08 19:09:42
【问题描述】:
我有一个典型的 JSF 项目设置:
myproject
|-- src/main/webapps
| |-- resources
| | |-- css
| | | |-- 3rdparty.css
| | |
| | |-- fonts
| | |
| | |-- myspecialfont.woff
| |
然后在我的 JSF html 中:
<h:outputStylesheet name="3rdparty.css" library="css"/>
这很好用,因为如果我需要升级,我可以保持目录一致。
但是,在这种情况下,3rdparty.css 文件包含一个相对引用:
@font-face {
font-family: 'Lato';
src: url('../fonts/myspecialfont.woff');
}
由于 h:outputStylesheet 构造了使用 mywebapp/javax.faces.resource/3rdparty.css 的 URI,这将破坏其中的相对引用,因为该路径现在将引用 mywebapp/fonts/myspecialfont.woff。
有没有一种很好的方法来保留这些由 JSF 引用的本地托管的 3rd 方库来处理这种相对引用,而无需手动更改 CSS?
【问题讨论】:
-
试试
url(#{request.contextPath}/resources/fonts/my.woff -
是的,这可行,但我试图避免编辑第 3 方 CSS 文件以保持简单的更新路径。