【发布时间】:2013-03-13 06:47:57
【问题描述】:
我有一个在 Glassfish 3.1.2.2 上运行的 web 应用程序,它使用 JSF 2.1 (Mojarra) 和 PrettyFaces 3.3.3 来促进将“漂亮”的 REST 样式 URL 与我的应用程序集成的任务。
但是,查看生成的 html 代码,我发现我的应用程序资源的路径相当“丑陋”。像这样:
<script type="text/javascript" src="/HelloWorld/faces/javax.faces.resource/js/jquery-1.9.1.min.js">
特别是faces/javax.faces.resource/ 部分伤害了我的眼睛。按照 PrettyFaces 的主要思想,我想删除这部分。
是否可以拦截这些 URL 的生成,PrettyFaces 可以帮我解决这个问题吗?
我正在使用 <h:outputScript name="js/jquery-1.9.1.min.js" />、<h:outputStylesheet name="css/app.css" /> 和 <h:graphicImage name="img/logo.png" /> 在我的 JSF-Servlet 中包含资源引用。
编辑:我想我必须做两件事?
- 一:将
/img/*之类的请求映射到它们的实际位置/faces/javax.faces.resource/img/*。 - 二:挂钩到
<h:graphicImage />元素(和其他元素)的 URL 生成。
如果你能给我一些关于从哪里开始的指示,我会很高兴。我对 JSF 很陌生。
非常感谢! :)
【问题讨论】:
-
这个要求的动机是什么?
-
我知道你的意思@Luiggi。这更像是一个“软”的要求。我想让我的网址漂亮,即使是指向资源的网址。我认为这个
/HelloWorld/img/logo.png或/HelloWorld/resources/img/logo.png看起来比/HelloWorld/faces/javax.faces.resource/img/logo.png更好。 -
您可能会觉得这很有帮助:stackoverflow.com/questions/14963756/…
-
谢谢,这个线程和从那里链接的其他线程非常有用。似乎是一项不平凡的任务;)我将按照@chkal 的建议看一下 Rewrite。
-
隐藏
javax.faces.resource也是一个安全问题。
标签: jsf url-rewriting prettyfaces