我刚刚从 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.
您收到此错误,
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)
| 归档时间: |
|
| 查看次数: |
3681 次 |
| 最近记录: |