我正在使用JSF和XHTML 模板,我在模板中使用 CSS 文件,背景图像被称为:
background-image: url("../../images/imageFile.jpg");
因为我正在使用模板,所以我发现我必须为页面和样式/图像保持相同的深度以正确应用样式,但是项目发生了变化,现在它需要文件夹和页面的可变深度,使得这种方法不再可行.
那么我的问题是:
有没有办法在 CSS 文件中用上下文路径(,等)替换相对路径( ../../
,等)? ../
<%Request.getContextPath()%>
#{facesContext.requestContextPath}
- - -更新 - - -
绝对路径是不可能的。我需要我的基于模板的页面(无论它们的深度如何)能够找到从我的 CSS 文件中引用的样式和图像资源。
目前,只有当页面、样式和图像在应用程序的文件夹结构中共享相同的深度时才有可能,但我不能再保留这种方法,因为新的项目要求阻止我这样做。
我的项目文件结构示例,<root>
即应用程序根目录的路径:
CSS(深度 2):<root>/styles/global/myStyles.css
包括具有深度 2 路径引用的样式,例如:
background-image: url("../../images/imageFile.jpg");
图像(深度 2):<root>/images/basic/imageFile.jpg
模板(深度 2):<root>/template/general/template1.xhtml
页面(深度 2):(<root>/pages/folder1/page1.xhtml
工作正常)
页面(深度-N):(<root>/pages/folder1/.../folderN/page2.xhtml
损坏的图像和样式)