我正在使用JSF2.1和RichFaces 4.1在JBoss AS 6.1.0.Final上工作。现在,我专注于重新编写URL。尝试了不同的方法后,我决定坚持使用PrettyFaces,因为它非常直观易用(并且在几分钟内就能让它运行)。
然而还有个问题,脚本/ css的相对链接出现混乱,因为URL已更改,而相对路径最终以404结束。我可以使用绝对路径,但这将强制我更改很多页面,并在页面源代码中公开应用程序的结构。
我在考虑一个临时解决方法:把处理这些相对链接的不同层级的责任交给后备bean,但重复使用bean使这成为一个微妙的问题。
我的问题是,在重新编写URL时,是否有明确定义的方法或最佳实践来管理这些相对路径?
编辑:
h: outputStylesheet和h: outputScript效果很好。剩下的问题是解决相对方式引用图像的CSS的小问题。看一下这个结构:
然而还有个问题,脚本/ css的相对链接出现混乱,因为URL已更改,而相对路径最终以404结束。我可以使用绝对路径,但这将强制我更改很多页面,并在页面源代码中公开应用程序的结构。
我在考虑一个临时解决方法:把处理这些相对链接的不同层级的责任交给后备bean,但重复使用bean使这成为一个微妙的问题。
我的问题是,在重新编写URL时,是否有明确定义的方法或最佳实践来管理这些相对路径?
编辑:
h: outputStylesheet和h: outputScript效果很好。剩下的问题是解决相对方式引用图像的CSS的小问题。看一下这个结构:
-------/resources
|
---_img
|
---_css
|
---_js
在文件夹_css
中的CSS文件使用相对路径../_img/image1.png
引用位于_img
文件夹中的图像image1.png
。问题是,它会导致404错误,因为它无法在/myApp/javax.faces.resource/_img/image1.png
中找到该图像。
将CSS中每个../
更改为#{request.contextPath}/resources
似乎可以很好地解决问题,但我想知道是否有更好的方法。相对路径的方法不起作用对我来说很奇怪。
#{request.contextPath}
动态打印上下文路径。例如,<script src="#{request.contextPath}/resources/js/script.js"></script>
等等。但是,为每个单独的JS / CSS / 图像资源重复此操作很丑陋 :) - BalusC#{resource}
表达式。另请参阅https://dev59.com/YWw05IYBdhLWcg3w72bN#6926193。 - BalusC