【发布时间】:2011-11-14 14:56:34
【问题描述】:
在我的 JSF 2.0 Facelets 应用程序中,我有一个出色的模板,我希望所有页面都使用它。它位于 web 应用程序的根目录中,名称为 template.xhtml。所以它的引用正如你所期望的那样:
<ui:composition template="./template.xhtml">
不过,我会时不时地导航到子目录中的客户端文件。由于不同的权限级别,以这种方式组织它们很有用。这些子目录中的 facelets 将引用相同的模板,如下所示:
<ui:composition template="../template.xhtml">
到目前为止一切顺利。但是在模板的标题中,我像这样拉入 css:
<link href="./resources/css/default.css" rel="stylesheet" type="text/css" />
<link href="./resources/css/tableLayout.css" rel="stylesheet" type="text/css" />
<link href="../resources/css/default.css" rel="stylesheet" type="text/css" />
<link href="../resources/css/tableLayout.css" rel="stylesheet" type="text/css" />
冗余引用的原因是我还没有找到任何其他方法来让模板从根目录或子目录的上下文中工作。以 / 开头的路径名不起作用,除非您像这样将应用程序名称放入其中
/TheApp-Ver1_0/resources/css/default.css
这样做的问题是绝对路径名以变量而不是常量开头。该变量取决于应用程序在容器中的部署方式。有什么干净的方法可以解决这个问题吗?
我做了一些搜索来找到这个问题。诚实的。但是,我怀疑这是 另一个 BalusC 突然出现的问题之一,它提供了一个链接,指向我错过的某个地方广泛讨论的令人眼花缭乱的解决方案。
【问题讨论】:
标签: jsf-2