我已經設置了一個Apache httpd服務器,使用mod_proxy代理Tomcat的請求,監聽端口80.我唯一的問題是靜態圖像和CSS沒有正確顯示。如果我在端口8080上使用Tomcat作爲服務器,則圖像和css顯示正常。任何想法如何顯示它們?謝謝!Apache與Tomcat代理:未顯示圖像
注意:我在Mac上並正在使用Amazon EC2服務器。一個例子是非常受歡迎的。
我已經設置了一個Apache httpd服務器,使用mod_proxy代理Tomcat的請求,監聽端口80.我唯一的問題是靜態圖像和CSS沒有正確顯示。如果我在端口8080上使用Tomcat作爲服務器,則圖像和css顯示正常。任何想法如何顯示它們?謝謝!Apache與Tomcat代理:未顯示圖像
注意:我在Mac上並正在使用Amazon EC2服務器。一個例子是非常受歡迎的。
終於搞明白了,請您在閱讀本文時不要踢我。我在Spring 3中使用Apache2,使用Springsource Tool Suite作爲IDE。整個原因,我沒能得到它的運行是因爲我用這個在我的索引JSP文件:
<link rel="stylesheet" href="<spring:url value="/resources/styles/foo.css" htmlEscape="true" />" type="text/css"/>
的事情是,當一個Tomcat 7的服務器上運行,它的完美。但是,當在Tomcat作爲容器的apache 2服務器上運行時,此css文件未顯示出來。所以,我從/resources/styles/foo.css
刪除/
:
<link rel="stylesheet" href="<spring:url value="resources/styles/foo.css" htmlEscape="true" />" type="text/css"/>
然後,它非常完美,兩個的Apache Tomcat的+和Tomcat獨立。
感謝和遺憾浪費你的時間。
在Apache中有一個htdocs文件夾,其中創建一個名稱與您的項目文件夾相同的文件夾,並粘貼資源並重新啓動服務器。
我同意@taher ... :) –
htdocs文件夾在哪裏?我必須自己創建一個嗎?如果是的話,在哪裏? – OckhamsRazor
您可以在以下位置找到該目錄。 C:\ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs 路徑可能因您的安裝目錄和htdocs文件夾而異,您需要指定應用程序的根文件夾。例如,如果您的應用程序使用「Web」名稱進行部署,那麼您需要在指定的路徑中創建一個名爲this的文件夾,並且在該文件夾內需要放置靜態資源(如圖像)。希望這可以幫助你。 :) –
Apache的錯誤日誌將包含404對圖像,注意所使用的URL的,要麼:
此問題涉及路徑轉換,您可能會爲您的應用程序服務於頂層客戶端/,但相應路徑爲/ myapp /(例如)。在Tomcat運行 Servlet的應用程序通常以這種方式在一個提供多個應用程序的設置,找你的Apache設置是這樣的:
ProxyPass/http://localhost:8080/myapp/
ProxyPassReverse/http://localhost:8080/myapp/
找你後端應用(MYAPP)是沒有意識到這一點翻譯和仍然實施它的通常路徑。 例如,你的應用程序指的是由位於/ myapp/images /下的tomcat上運行的應用程序提供的一些靜態圖像文件,你可以做的一種方式是保留特殊的代理映射,而不是其他重寫規則。
ProxyPass /myapp/images http://localhost:8080/myapp/images
ProxyPassReverse /myapp/images http://localhost:8080/myapp/images
所以你可以在前面的指令塊前面使用這些行。
這是一樣的CSS? – OckhamsRazor
是的,相同的CSS和Javascript – Iman
如果我們有負載平衡器設置,這將如何工作?如何使路徑動態化 – Sridhar
屬於serverfault.com。 – EJP