【问题标题】:Grails URL's with Tomcat/Apache ProxyPass带有 Tomcat/Apache ProxyPass 的 Grails URL
【发布时间】:2011-01-27 12:29:08
【问题描述】:

Grails 倾向于为使用其标签的所有内容写出 URL,例如 /appName/whatever。例如,如果我使用标签:

<g:javascript library="jquery"/>

结果标签是

<script src="/appName/jquery/jquery.js"></script>

这会导致将 ProxyPass 与 Apache/Tomcat 一起使用时出现问题。我所有的 CSS、JS、图像和链接都以 /appName 为前缀。

有没有办法使用 ProxyPass 解决这个问题,或者 Grails 是否可以不将 appName 前缀到我所有 URL 的前面?

【问题讨论】:

    标签: apache url tomcat grails proxypass


    【解决方案1】:

    如果您的 tomcat 中没有默认运行其他应用程序,或者您不关心替换它,则必须在部署之前将您的 war 文件重命名为 ROOT.war。 (如果存在则删除目录ROOT)

    如果你有多个应用程序并且只有一个 tomcat 服务器,你可以使用虚拟主机。每个应用程序一个虚拟主机。 (http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html)

    如果您选择 virtualhosts 方法,则在定义 ProxyPass 语句时必须使用 de virtualhost domain 并确保 apache 服务器正确解析 virtualhost 域。 (如果没有,您可能需要编辑他的 os hosts 文件)

    对不起我的英语。

    【讨论】:

      【解决方案2】:

      这对我有用,您是否尝试将应用程序作为 domain.com/ 而不是 domain.com/appName 运行?

      如果是这样,那么您可能需要在标记中指定 baseabsolute 参数。

      【讨论】:

      • 是的,我试图将它作为 domain.com 运行。所以一切都以 /appName 为前缀,这会导致问题。问题出在 g:javascript 标签上,它不接受绝对参数。我想知道是否有办法告诉tomcat我通过/而不是/appName访问东西?
      猜你喜欢
      • 2021-09-16
      • 2013-11-26
      • 2023-03-06
      • 2011-06-02
      • 2017-10-09
      • 2011-02-06
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多