Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 使用映射URL和操作的PrettyFaces,我会丢失所有样式_Jsf_Prettyfaces - Fatal编程技术网

Jsf 使用映射URL和操作的PrettyFaces,我会丢失所有样式

Jsf 使用映射URL和操作的PrettyFaces,我会丢失所有样式,jsf,prettyfaces,Jsf,Prettyfaces,在我开始使用映射URL功能(第3.6节)之前,我一直在毫无疑问地为URL使用漂亮的面孔 我得到的输出和行动,我想发生的工作良好。但问题是我无法访问资产文件夹下的任何资产。我要买404。奇怪的是,其他配置都没有出现问题。当我把它们放在一起的时候也不是问题。该应用程序使用的是一个模板,因此链接到css的,js的,等等。。它们完全一样。当我转到一个普通的ol'(例如/home)映射时,它们工作正常,转到另一个页面上的操作,它们不工作。不过,模板渲染会执行此操作。事实上,参数注入和动作也起作用 漂亮的配

在我开始使用映射URL功能(第3.6节)之前,我一直在毫无疑问地为URL使用漂亮的面孔

我得到的输出和行动,我想发生的工作良好。但问题是我无法访问资产文件夹下的任何资产。我要买404。奇怪的是,其他配置都没有出现问题。当我把它们放在一起的时候也不是问题。该应用程序使用的是一个模板,因此链接到css的,js的,等等。。它们完全一样。当我转到一个普通的ol'(例如/home)映射时,它们工作正常,转到另一个页面上的操作,它们不工作。不过,模板渲染会执行此操作。事实上,参数注入和动作也起作用

漂亮的配置:

<url-mapping id="home"> <!-- assets work -->
    <pattern value="/home" />
    <view-id value="/home.jsf" />
</url-mapping>
<url-mapping id="validate-token"> <!-- assets don't work -->
  <pattern value="/validate-token/type/#{id:validateByTokenController.tokenType}/token/#{validateByTokenController.token}" />
  <view-id value="/validate-token.jsf" />
  <action>#{validateByTokenController.init}</action>
</url-mapping>
XHTML示例CSS链接:(相同的链接用于“主”配置,但不用于“验证令牌”)



提前感谢。

问题是您正在为CSS文件使用相对URL

使用类似于
/validate-token/type/foo/token/bar的URL,浏览器认为
/validate-token/type/foo/token/
是当前目录。因此,他尝试从
/validate-token/type/foo/token/assets/CSS/style.CSS
加载CSS文件

请尝试为CSS使用绝对URL:

<link rel="stylesheet" href="#{request.contextPath}/assets/css/style.css" />

是有意义的,而且是有效的,我只是不清楚为什么在prettyfaces的url映射中添加“action”会使它不起作用,其余的仍然有效。不管怎样谢谢你的提示!
<link rel="stylesheet"
    href="assets/plugins/bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" href="assets/css/style.css" />
<link rel="stylesheet" href="#{request.contextPath}/assets/css/style.css" />