0

考虑一个 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>

为了澄清,也许:

考虑可在 上访问的 Tomcathttp://internalhost.com副本和可在公共 Internet 上访问的 Apache2 副本http://externalhost.com

Apache 实例的配置包括一个从 映射http://externalhost.com/blue/green/到的反向代理http://internalhost.com/yellow

现在,位于“黄色”的东西是一个 Web 应用程序,由带有 JavaScript 的网页组成,这些网页需要与黄色 Web 应用程序内的 Web 服务进行通信。我们不想在这些东西中加入路径名。上面的代码会将“内部主机”URL 传递给浏览器,而浏览器无法与它们对话。我需要它来提供“外部主机”URL。

我不希望在 JSP 或 HTML 中使用对部署它的 URL 进行假设的代码,更不用说代理的存在了。

4

1 回答 1

0

经过考虑,Web 服务的相对 URL 似乎是最不坏的选择。因此,EL 表达式完全消失了,并且 URL 在代理的任一侧都可以正常工作。这需要 JSP 页面和 Web 服务之间的恒定路径关系,但这是一个很小的代价。

于 2012-09-03T12:56:57.463 回答