考虑一个 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 进行假设的代码,更不用说代理的存在了。