【问题标题】:Grails Tomcat root context and double slash (//) in URLsGrails Tomcat 根上下文和 URL 中的双斜杠 (//)
【发布时间】:2013-07-19 20:01:03
【问题描述】:

`我的 grails 应用程序部署在运行在 Debian Stable 上的 Tomcat 7.0.32 的 ROOT 上下文中。我通过设置 apache-tomcat-7.0.32/conf/Catalina/localhost/ROOT.xml 启用了此功能:

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="" docBase="/home/tomcat/explodedWarDirectory/" antiResourceLocking="false" privileged="true" />

当 Grails 的 g:link 标记被评估或调用来自控制器的 redirect() 时,所有 URL 的开头都包含 //,可能是因为上下文为空。

所以,我把上面的配置改成&lt;Context path="/",还是一样的问题。

如何使链接或重定向正常工作,这样我的网址开头就没有//

【问题讨论】:

  • 您根本不需要path=".....",因为要使用的上下文路径是从文件名推断出来的(ROOT.xml 表示根上下文,foo.xml 表示/foo, ETC。)。试试&lt;Context docBase="..."
  • 我已经删除了该属性,但没有运气!不过感谢您的想法。
  • 您还可以检查Config.groovy 中的grails.serverURL 是否没有尾部斜杠...
  • 谢谢 Andrew - 这是一个斜杠导致的!

标签: tomcat grails


【解决方案1】:

感谢 cmets 的 Andrew,我已经解决了这个问题。

grails-app/conf/Config.groovy 中,服务器的 URL 有一个斜杠(在我们的生产部分):

grails.serverURL = "http://ourhostname/"

删除尾部斜杠解决了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2013-11-21
    • 1970-01-01
    • 2018-03-18
    • 2015-03-15
    • 2010-12-14
    相关资源
    最近更新 更多