模板化并尝试从CSS文件中引用上下文路径

Fra*_*ado 3 css jsf templates relative-path contextpath

我正在使用JSFXHTML模板,我在模板中使用CSS文件,背景图像被称为:

background-image: url("../../images/imageFile.jpg");
Run Code Online (Sandbox Code Playgroud)

因为我正在使用模板,我发现我必须为页面和样式/图像保持相同的深度才能正确应用样式页面,但项目有变化,现在它需要文件夹和页面的可变深度,使这种方法不再可行.

然后我的问题是:

是否有某种方式来代替相对路径(../../, ../由上下文路径(等)<%Request.getContextPath()%>, #{facesContext.requestContextPath}等等),CSS文件里面?

----- -----更新

绝对路径是不可能的.我需要基于模板的页面(无论它们的深度)能够找到我的CSS文件引用的样式和图像资源.

目前只有当页面,样式和图像在应用程序的文件夹结构中共享相同的深度时才有可能,但是我不能再保留这种方法,因为新的项目要求阻止我这样做.

我的项目文件结构的示例,作为<root>应用程序根目录的路径:

CSS(depth-2):<root>/styles/global/myStyles.css 包含具有深度2路径引用的样式,例如:

background-image: url("../../images/imageFile.jpg");
Run Code Online (Sandbox Code Playgroud)

图像(深度-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 图像和样式损坏)

Bal*_*usC 5

这些路径相对于CSS文件本身的请求URL.对于我来说,将它们分组到与CSS文件本身相同的根级别似乎是微不足道的.例如/css,CSS文件和/css/imagesCSS背景图像.这样你就可以一直使用url('images/name.ext')了.

我不知道每次更改路径有什么用处.只需保持它们的一致性,并在必要时将其清楚地记录下来,以便现在和将来对每个人都清楚.