在 grails 应用程序中找不到模板

Ant*_*ony 2 tags grails gsp

我刚刚从 2.1.2 升级到 grails 2.2.4。在我的本地一切正常,但是,当我将 WAR 打包到测试环境中时,我看到了一个奇怪的错误。在使用模板的表单上,我收到错误消息:

找不到名称 [form] 和路径 [/base/_form.gsp] 的模板。

但是,此模板(使用来自 create.gsp)不在基本文件夹下。它位于一个名为 color 的文件夹下(在视图下),它是create.gsp_form.gsp所在的位置

这是我在 create.gsp 中使用的标签:

<g:render template="form" bean="${mybean}"/>
Run Code Online (Sandbox Code Playgroud)

似乎 grails 假设模板base存在于color.

iku*_*men 5

您收到此错误,

template not found for name [form] and path [/base/_form.gsp]
Run Code Online (Sandbox Code Playgroud)

因为 Grails 正在_form.gsp按照约定在相对于与呈现父 gsp 的控制器同名的文件夹的路径中查找。如果您不在views渲染标签中提供绝对路径(从文件夹开始),情况将始终如此。

你的 _form.gsp 页面在哪里?以下是一些示例路径

grails-app/views/_form.gsp           
    -> <g:render template="/form" ..

grails-app/views/base/_form.gsp      
    -> <g:render template="/base/form" ... 
 or -> <g:render template="form" ..  //if calling from baseController 
Run Code Online (Sandbox Code Playgroud)

因此,如果 _form.gsp 存在于 color 中,而 color 位于 grails-app/views/color 中,则渲染标签中将需要以下路径:

<g:render template="/color/form"
Run Code Online (Sandbox Code Playgroud)