Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails:如何从生产url中删除AppName_Grails_Tomcat7_Reverse Proxy_Grails 2.2 - Fatal编程技术网

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"