gpt4 book ai didi

apache - 如何在子域中的反向代理后面运行PrimeFaces?

转载 作者:行者123 更新时间:2023-12-04 08:27:22 25 4
gpt4 key购买 nike

我已经使用PrimeFaces构建了一个应用程序,并希望在apache反向代理后面运行该应用程序。

我的目标网址看起来像这个http://myserverurl.org:8080/myapplication/

我想通过像http://myapplication.myserverurl.org这样的子域访问应用程序。

我已经在Apache中配置了VirtualHost:

<VirtualHost *:80>
ServerName myapplication.myserverurl.org
ProxyPass / http://myserverurl.org:8080/myapplication/
ProxyPassReverse / http://myserverurl.org:8080/myapplication/
</VirtualHost>

效果不是很好。我可以看到JSF页面,但是没有应用CSS等。我可以看到第一个请求已正确重定向,但随后的请求(用于加载jQuery,CSS等)却没有。

他们尝试访问类似 http://myapplication.myserverurl.org/myapplication/faces/javax.faces.resource/primefaces.js?ln=primefaces的URL,这显然是错误的。它们不能再包含 /myapplication/路径,因为代理已经重定向到该路径。

我该如何解决这个问题?这是PrimeFaces问题还是我的反向代理配置问题?

最佳答案

使用(或不使用)AJP与解决此特定问题无关。

Primefaces内部使用上下文路径变量来包含CSS和Javascript资源。即使使用AJP,您最终也会得到:

/unwantedAppContext/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces

解决此问题的方法可以添加另一个代理处理,以处理不需要的上下文。这可能不是最好的解决方案,但它可以工作。

<VirtualHost *:80>

ServerName myapplication.myserverurl.org

ProxyPass /myapplication/ http://myserverurl.org:8080/myapplication/
ProxyPassReverse /myapplication/ http://myserverurl.org:8080/myapplication/

ProxyPass / http://myserverurl.org:8080/myapplication/
ProxyPassReverse / http://myserverurl.org:8080/myapplication/
</VirtualHost>

通行证的顺序很重要。

icefaces论坛中也报告了此问题
http://www.icesoft.org/JForum/posts/list/4433.page#sthash.h1qSqiYg.dpbs

关于apache - 如何在子域中的反向代理后面运行PrimeFaces?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13139319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com