2012-01-03 77 views
1
  1. 我在tomcat的 在JSP文件apache和配置虛擬主機使用mod_jk的老辦法,我指的是CSS如下使用反向代理工作時如何設置Java Web應用程序的上下文根

    /<%=request.getContextPath()%>/css/styles.css

而歸屬鏈路設置爲

/<%=request.getContextPath()%>/ 

這麼個當我在apache中使用mod_jk與使用ajp的tomcat一起工作時工作得很好;

  1. 當我嘗試配置反向代理如下

的ProxyPass/http://localhost:800/mywebapp

ProxyPassReverse/http://localhost:800/mywebapp

主頁可以檢索罰款,但CSS要求變得 http://mydomain.com/mywebapp/mywebapp/css/style.css 所以css文件無法正確檢索;

  1. 我想一種可能的方法是總是使用相對路徑,如./style.css或../style.css a。由於頁眉/頁腳是共享的,並且主頁與詳細信息頁面處於不同的級別,因此使用相對路徑很不方便,因爲它們處於不同的級別 b。不過,我認爲歸屬鏈路將不得不/ <%= request.getContextPath()%>/

所以我不知道什麼是設置在的Java Web上下文根細的方式也很好地工作反向代理?

THX很多

回答

0

正如我知道你的應用服務器(Tomcat)的不能知道反向代理的存在。一般來說,它可以通過任意數量的反向代理或直接通過瀏覽器進行聯繫。網絡配置通常用於限制這一點,而不是HTTP或Java。

因此,您必須準確依靠相對URL來使您的應用程序正常工作。

當我必須處理反向代理存在(幾乎總是由於SSO體系結構)時,我嵌入了「連接」配置字符串項(代理中用於映射應用程序的URL部分)並將其用於我需要構建絕對URL的唯一地方。

+0

嗨,thx for reply;問題:1.你如何指定你的鏈接到CSS和家庭鏈接? 2.你如何在apache配置中指定反向代理設置?謝謝。 – hetaoblog 2012-01-04 02:47:56

+0

我通常用一個靜態方法添加一個Helper類,該方法返回一個配置參數,並將其放入一個.properties文件中,因此對您的css的引用可以是:<%= UrlHelper.getBasePath()%>/css/styles .css和getBasePath方法中,您可以讀取屬性,環境,數據庫等。 – 2012-01-04 08:26:04

+0

你是否在你的反向代理配置中設置了這個? ProxyPass/http:// localhost:800/mywebapp, – hetaoblog 2012-01-05 02:53:27

相關問題