Jsf 2 当上下文根为root时,如何使用#{request.contextPath}/&引用;?

Jsf 2 当上下文根为root时,如何使用#{request.contextPath}/&引用;?,jsf-2,el,Jsf 2,El,我们目前正在将一个EE6/JSF应用程序从部署路径someserver.com/app移动到它自己的子域app.someserver.com 大多数事情都进展顺利,但我们在web层如何处理现在基本不存在的上下文根方面遇到了意想不到的问题 我们早期发现并修复的一件事是,我们设置的cookie的路径从“/app”缩短为”,因此只能读取服务器上的每个文件夹,而不能读取整个应用程序 现在,我们在JSF中生成的超链接中发现了一个类似的问题: <a href="#{request.contextPat

我们目前正在将一个EE6/JSF应用程序从部署路径
someserver.com/app
移动到它自己的子域
app.someserver.com

大多数事情都进展顺利,但我们在web层如何处理现在基本不存在的上下文根方面遇到了意想不到的问题

我们早期发现并修复的一件事是,我们设置的cookie的路径从
“/app”
缩短为
,因此只能读取服务器上的每个文件夹,而不能读取整个应用程序

现在,我们在JSF中生成的超链接中发现了一个类似的问题:

<a href="#{request.contextPath}">Go to home page</a>
,因此简单地用
“/”
替换空的上下文路径是不够的


我错过了什么明显的东西吗?我看到了一个解释(与我们的经验相符),但没有详细说明可能的解决方案。

结果是我没有思考清楚。我非常专注于修复
{request.contextPath}
生成的字符串,以至于我忽略了它,以至于我基本上一直都在错误地使用它

最简单的解决方法就是使用

<a href="#{request.contextPath}/">...</a>

(带尾随斜杠)以到达应用程序的根目录,并且绝对不要使用不带斜杠的
href=“#{request.contextPath}”

这解决了这两种情况。如果应用程序部署到“some\u文件夹”,则链接将变成
“some\u文件夹/”
。如果应用程序部署到服务器根目录,则链接将变为
“/”


希望这能帮助那些跌入同样陷阱的人。

原来我没有想清楚。我非常专注于修复
{request.contextPath}
生成的字符串,以至于我忽略了它,以至于我基本上一直都在错误地使用它

最简单的解决方法就是使用

<a href="#{request.contextPath}/">...</a>

(带尾随斜杠)以到达应用程序的根目录,并且绝对不要使用不带斜杠的
href=“#{request.contextPath}”

这解决了这两种情况。如果应用程序部署到“some\u文件夹”,则链接将变成
“some\u文件夹/”
。如果应用程序部署到服务器根目录,则链接将变为
“/”

希望这能帮助那些跌入同样陷阱的人