【问题标题】:Apache with Tomcat proxy: not showing images带有 Tomcat 代理的 Apache:不显示图像
【发布时间】:2012-09-06 01:58:12
【问题描述】:

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

注意:我在 Mac 上使用 Amazon EC2 服务器。非常欢迎举个例子。

【问题讨论】:

    标签: spring apache tomcat


    【解决方案1】:

    这个问题与路径转换有关,您可能会在顶层 / 为客户端提供应用程序,但相应的路径将是 /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
    

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

    【讨论】:

    • 如果我们设置了负载均衡器,这将如何工作?如何使路径动态
    【解决方案2】:

    终于想通了,伙计们-当你读到这篇文章时请不要踢我。我将 Apache2 与 Spring 3 一起使用,并使用 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 上都能完美运行。

    感谢并抱歉浪费您的时间。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • htdocs 文件夹在哪里?我必须自己创建一个吗?如果有,在哪里?
      • 您可以在以下位置找到该目录。 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs 路径可能因您的安装目录而异,在 htdocs 文件夹中,您需要指定应用程序的根文件夹。例如,如果您的应用程序使用“Web”名称部署,那么您需要在指定的路径中创建名为 this 的文件夹,并且在该文件夹内您需要放置静态资源,例如您的案例中的图像。希望这对您有所帮助。 :)
      【解决方案4】:

      您的 apache 错误日志将包含图像的 404,请注意正在使用的 URL 以及:

      • 将它们与您使用的 ProxyPass 指令进行比较并修复/添加 ProxyPass
      • 将它们复制到您的网络服务器文档根目录的右侧子目录中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-12
        • 1970-01-01
        • 1970-01-01
        • 2018-06-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多