考虑一个JSP页面,其中包含以下内容,位于反向代理之后。
前者可以通过使用mod_proxy_html重写link
来解决,但它不会在脚本元素中进行探索。有没有更好的解决方案,而不是通过-D传递正确的URL并覆盖pageContext.request.contextPath?
<link rel="stylesheet"
href="${pageContext.request.contextPath}/services/legendcss/legend.css?version=2"
type="text/css"/>
<script>
var bt_wd40_appurl = "${pageContext.request.contextPath}/services";
</script>
澄清一下,或许:
考虑在http://internalhost.com
可以访问的Tomcat副本,以及http://externalhost.com
在公共互联网上可以访问的Apache2副本。
Apache实例的配置包括一个从http://externalhost.com/blue/green/
映射到http://internalhost.com/yellow
的反向代理。
现在,坐在'yellow'的东西是一个webapp,由带有javascript的网页组成,需要在黄色webapp内与Web服务对话。我们不想在这些事情中加入路径名。上面的代码将向浏览器提供“内部主机”URL,这些URL无法与他们通信。我需要它来提供'externalhost'URL。
我不希望JSP或HTML中的代码对其部署的URL做出假设,更不用说存在代理了。
答案 0 :(得分:0)
经过考虑,Web服务的相对URL似乎是最不好的选择。因此,EL表达式完全消失,并且URL在代理的任一侧也能正常工作。这需要JSP页面和Web服务之间的持续路径关系,但这是一个很小的代价。