Grails-插件视图页面问题

Grails-插件视图页面问题,grails,grails-plugin,Grails,Grails Plugin,我有一个与域,控制器和查看页面插件。(使用Grails1.3.6) 我独立运行插件,视图工作正常。URL:http://localhost:8080/sample-plugin/gp/list。我可以查看列表页面 我将插件安装到主应用程序中,即插件测试。在STS中启动运行应用程序并浏览到http://localhost:8080/plugin-测试/gp/列表。我可以查看列表页面 我将应用程序捆绑为war,即plugin-test.war,并部署到tomcat。当我浏览到http://local

我有一个与域,控制器和查看页面插件。(使用Grails1.3.6)

我独立运行插件,视图工作正常。URL:
http://localhost:8080/sample-plugin/gp/list
。我可以查看列表页面

我将插件安装到主应用程序中,即插件测试。在STS中启动运行应用程序并浏览到
http://localhost:8080/plugin-测试/gp/列表
。我可以查看列表页面

我将应用程序捆绑为war,即plugin-test.war,并部署到tomcat。当我浏览到
http://localhost:8181/plugin-test/gp/list
我得到一个404错误!我不确定我做错了什么

我一直在努力解决它已经有一段时间了,但仍然没有运气。同一个主应用程序在STS中运行良好,但在tomcat中不起作用

HTTP Status 404-/plugin test/WEB-INF/grails app/views/gp/list.jsp

类型状态报告

message/plugin-test/WEB-INF/grails-app/views/gp/list.jsp

description请求的资源(/plugin test/WEB-INF/grails app/views/gp/list.jsp)不可用。

请帮忙

多谢各位


杰伊·钱德兰。

这听起来令人担忧的熟悉,因为我花了一段时间研究这个(或非常类似的)问题。我最终提出了这个Grails bug报告:


您是否使用新的BuildConfig依赖技术安装了插件?JIRA记录了我的解决方法。

分享了我在经历相同问题后的一些经验教训(1.3.7):

  • 仔细检查HTML源代码,确保没有包含模板。我的被包括在内,但我的CSS/图像URL是错误的(只有在作为战争运行时)…所以我错误地认为我的模板不在那里
  • 不要使用ui性能标签来引用静态内容…即使指定了插件属性,也似乎不起作用
  • 不要将布局命名为main.gsp。你肯定会有冲突
  • 不要在g:resource标记上使用absolute=true。即使指定dir=“${plugintextpath}”,这似乎也不会将plugintextpath附加到绝对url
  • 不要使用pluginContextPath,因为不再需要它:(搜索“插件路径”)
  • 在插件布局中的g:resource标记中,确保指定了插件属性。将其设置为插件的名称
  • 将静态图像/css从插件移动到web服务器。如果使用插件的每个应用程序都有自己的副本,那么在应用程序之间跳转时,用户将无法从缓存中获益

请注意,以上所有内容都适用于插件项目中的布局gsp,而不是消费应用程序。

Hi Martin。谢谢你的回复。我没有使用BuildConfig。我正在使用installplugin命令安装插件。我的plugin-test.war有
\plugin-test\plugins\sample-plugin-01
目录,其中包含css、js和图像文件。而
\plugin test\WEB-INF\plugins\sample-plugin-01\grails app\views
拥有所有的视图页面。但是tomcat找不到视图页面。部署的war似乎在所有正确的目录中都有所有必需的文件,但是tomcat出于某种奇怪的原因没有解析视图页面。我今天注意到一件事。插件页面也被复制到WEB-INF/classes目录!我想这可能就是原因。WEB-INF/classes也有类文件名,比如
gsp\u plugin\u test\u webapp\u WEB\u INF\u classes\u doc\u header\u gsp。class
这似乎很奇怪!你好谁能帮我把它分类。。。我仍然有这个问题。很抱歉反应太晚。这实际上是STS2.6.0 Groovy编译器的一个问题。我在圣吉拉提出了这一点,它是固定的。请看这里: