【问题标题】:grails.gsp.view.dir works in dev but not when deployed as wargrails.gsp.view.dir 在 dev 中有效,但在部署为 war 时无效
【发布时间】:2013-09-21 00:53:10
【问题描述】:

我一直在尝试利用 grails.gsp.view.dir,这似乎是与基于云的 CMS 集成时的理想解决方案。当我使用 Grails run-app 时,它工作得很好,但是一旦我将它构建为一个 war 文件并将它部署到 Tomcat(我使用的是版本 7),它就不再关注这个指令并使用默认的 WEB- INF 目录。

我正在使用一些非常标准的插件(邮件、webflow、jodatime),所以我认为它们不是问题,尽管我还没有开始使用全新的应用程序。我下次试试。我想这可能是 2.1.1 中的一个错误,所以我升级到 2.3,但我仍然遇到同样的问题。我需要在我的构建配置中做些什么来a)告诉它在其他地方部署我的视图,b)让它使用那个部署的目录吗?任何想法都会有所帮助,

谢谢

【问题讨论】:

  • 但是部署为 WAR 文件后您期望的目录是什么?
  • 嗨@Igor Artamonov,在我的本地,我有一个目录'\temp\grails\grails-app\views'。因此,我设置了 grails.gsp.view.dir = 'temp\grails\' ,当我执行运行应用程序时,它确实从该目录中读取了所有视图。但是当我制作一个war文件并将其放入本地tomcat实例的webapps文件夹时,它不再从temp/grails/grails-app/views读取,而是从tomcat/webapps/myapp/WEB-INF/grails-app/views读取.有点烦人。我在我的开发盒和我们的生产服务器上尝试了这个,无论它从 WEB-INF 文件夹中读取的 grails.gsp.view.dir 的值如何。

标签: tomcat grails


【解决方案1】:

我很惊讶没有其他人遇到这个问题,但似乎 grails.gsp.view.dir 的 Grails 文档不正确。我将值设置为 '/temp/grails/' 并以 / 作为文档指定的结尾,但正如我上面提到的,它在运行 grails-app 时有效,但在您将其部署为 war 文件时无效。

我做了一些代码审查,我注意到这个配置设置是由 GroovyPagesGrailsPlugin 传递给 GroovyPageResourceLoader 的(很高兴与开源一起工作)。 GroovyPageResourceLoader 有一个很好的调试语句,它显示了它试图使用的资源路径,所以我打开它,在 dev 中它显示它正在路径中搜索:'/temp/grails/grails-app/views' 正如人们所期望的那样。但是,当我将其部署为战争并检查日志时,它显示为:/temp/grails/WEB-INF/grails-app/views'。所以我将 WEB-INF 目录添加到了我的 temp/grails 中,果然它可以工作。不确定我是否应该为此创建 JIRA 票证,但应该更新文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-19
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多