相关疑难解决方法(0)

将JSF前缀更改为后缀映射会强制我重新应用CSS背景图像上的映射

我多年来一直在使用前缀映射,并决定切换到后缀映射,只是为了/faces真正摆脱url.在我挖洞之前,我只是想检查一下我是否朝着正确的方向前进,因为有一些意想不到的事情正在发生.我改变了这个:

<servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

对此:

<servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

然后我看到所有内容FacesServlet.xhtml 附加到它上面,因此浏览器正在请求background.png.xhtml文件, style.css.xhtml文件 - 这是正确的吗?我认为它被称为后缀映射,但它看起来有些凌乱,我试图说服自己这是要走的路.

在我引用URI的CSS文件中,我还必须附加.xhtml:

background-image: url(images/background.png.xhtml);
Run Code Online (Sandbox Code Playgroud)

然后我看到BalusC的一篇帖子提供了一个解决方案,可以防止资源下载而无需通过FacesServlet:

<security-constraint>
    <display-name>Restrict raw XHTML docs</display-name>
    <web-resource-collection>
        <web-resource-name>XHTML</web-resource-name>
        <url-pattern>*.xhtml</url-pattern>
    </web-resource-collection>
    <auth-constraint/>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)

当我添加这个时,只有真实.xhtml文件加载到页面上,所有其他资源(尽管已经.xhtml附加)不显示.

我想知道的是:

  1. 这是否适用.xhtml于一切正常(对不起,如果这几年最愚蠢的问题)

  2. 为什么'限制原始xhtml文档'安全约束会阻止加载CSS,JavaScript和图像等资源?

感谢您的任何反馈.我在Glassfish 3.1上使用Mojarra 2.1.2.

css jsf facelets jsf-2

14
推荐指数
1
解决办法
7234
查看次数

标签 统计

css ×1

facelets ×1

jsf ×1

jsf-2 ×1