2012-09-13 35 views
2

我已经设置了一个Apache httpd服务器,使用mod_proxy代理Tomcat的请求,监听端口80.我唯一的问题是静态图像和CSS没有正确显示。如果我在端口8080上使用Tomcat作为服务器,则图像和css显示正常。任何想法如何显示它们?谢谢!Apache与Tomcat代理:未显示图像

注意:我在Mac上并正在使用Amazon EC2服务器。一个例子是非常受欢迎的。

+0

属于serverfault.com。 – EJP

回答

1

终于搞明白了,请您在阅读本文时不要踢我。我在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独立。

感谢和遗憾浪费你的时间。

0

在Apache中有一个htdocs文件夹,其中创建一个名称与您的项目文件夹相同的文件夹,并粘贴资源并重新启动服务器。

+1

我同意@taher ... :) –

+0

htdocs文件夹在哪里?我必须自己创建一个吗?如果是的话,在哪里? – OckhamsRazor

+1

您可以在以下位置找到该目录。 C:\ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs 路径可能因您的安装目录和htdocs文件夹而异,您需要指定应用程序的根文件夹。例如,如果您的应用程序使用“Web”名称进行部署,那么您需要在指定的路径中创建一个名为this的文件夹,并且在该文件夹内需要放置静态资源(如图像)。希望这可以帮助你。 :) –

0

Apache的错误日志将包含404对图像,注意所使用的URL的,要么:

  • 比较它们ProxyPass指令您使用和修复/添加的ProxyPass
  • 将它们复制到正确的您的网络服务器文档的子目录
0

此问题涉及路径转换,您可能会为您的应用程序服务于顶层客户端/,但相应路径为/ 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 

所以你可以在前面的指令块前面使用这些行。

+0

这是一样的CSS? – OckhamsRazor

+0

是的,相同的CSS和Javascript – Iman

+0

如果我们有负载平衡器设置,这将如何工作?如何使路径动态化 – Sridhar