Grails:如何从生产url中删除AppName
我试图将Grails:如何从生产url中删除AppName,grails,tomcat7,reverse-proxy,grails-2.2,Grails,Tomcat7,Reverse Proxy,Grails 2.2,我试图将grails2.2.3项目部署到生产环境中,但URL有问题。 我在Apache中设置了反向代理,并以 我在Config.groovy中设置了以下属性: grails.serverURL = "http://example.com/" 并在应用程序.properties中设置以下内容: app.context=/ 然而,我所有的资源和链接总是参考 http://example.com/AppName/... 如何从资源和链接引用中删除应用程序名称(“AppName” 资源示例: &l
grails2.2.3
项目部署到生产环境中,但URL有问题。
我在Apache中设置了反向代理,并以
我在Config.groovy
中设置了以下属性:
grails.serverURL = "http://example.com/"
并在应用程序.properties
中设置以下内容:
app.context=/
然而,我所有的资源和链接总是参考
http://example.com/AppName/...
如何从资源和链接引用中删除应用程序名称(“AppName”
资源示例:
<r:require modules="bootstrap"/>
<g:javascript library="jquery"/>
我认为Grails应用程序必须具有某种可以设置的属性!?否则,这似乎是一个痛苦的脖子
请帮忙
注:如果我直接访问任何资源(手动从URL中删除AppName),我会得到正确的东西,比如css、js和图像
更新:
我在application.properties中设置了以下内容:
app.context=/
serverURL=http://example.com/
并在grails中创建了绝对URL:
<g:createLink controller="Sample" absolute="true"/>
它会创建正确的URL!!!但是,资源使用相对路径并以AppName/…开头。。。这似乎是一个诅咒,我就是无法摆脱那个AppName
更新:
如果我运行
prod-run-app
,那么所有的URL都会正确地显示出来,但是当我部署到Tomcat 7时,AppName会再次出现在URL中。还有其他选项,但最短的方法可能是像ROOT.war一样部署它
只需更改BuildConfig.groovy中的默认war文件名即可:
grails.project.war.file = "target/ROOT.war"
为您设置正确的grails.serverURL属性,就完成了
希望有帮助。应该是
grails.app.context='/'
。参考如何生成链接?您是否在prod环境的Config.groovy
中设置了grails.serverURL
属性?向问题添加了信息对不起,但我不能使用ROOT.war,还有其他方法吗?首先检查tomcat中是否没有其他应用部署为ROOT(“/”)应用,否则它们将发生冲突。然后尝试grails.app.context='/',但不要在application.properties(Config.groovy或使用定位器的属性文件)中使用。
grails.project.war.file = "target/ROOT.war"