我有一个部分模板,我包含在我的main.gsp
。
对于网站上的每个控制器/页面,此部分内容略有不同。
因此,我将为每个视图目录单独_headerDetails.gsp
。
除默认应用程序index.gsp
外,此方法正常。
当我在根视图目录下包含_headerDetails.gsp
时,我收到以下错误:
org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error processing GroovyPageView: Template not found for name [headerDetails] and path [//_headerDetails.gsp]
grails是否允许根目录中的partial?
Main.gsp
<html>
<head>
<g:layoutTitle/>
<r:layoutResources/>
<link href="${resource(dir: 'css', file: 'style.css')}" type="text/css" rel="stylesheet">
</head>
<body class="home">
<div id="wrapper">
<div id="page_top"></div>
<div id="content">
<g:render template="/common/header" />
<g:render template="headerDetails" />
<br class="clear" />
<g:layoutBody/>
<br class="clear" />
</div>
<div id="page_bottom"></div>
<g:render template="/common/footer" />
</div>
<r:layoutResources/>
</body>
</html>
答案 0 :(得分:5)
是headDetails
还是headerDetails
?
如果不是拼写错误问题,请尝试在模板名称前使用/
到达根目录!
答案 1 :(得分:3)
<g:if test="${params.action.equals('')}">
<g:render template="/headerDetails" />
</g:if>
<g:else>
<g:render template="headerDetails" />
</g:else>
答案 2 :(得分:1)
请参阅grails docs的“模板基础知识&gt;共享模板”一章:
http://grails.org/doc/2.0.x/guide/theWebLayer.html#viewsAndTemplates
在这种情况下,您可以将它们放在根视图目录中
grails-app/views
或该位置下的任何子目录,然后 使用模板属性使用以/
开头的绝对位置 而不是相对位置。例如,如果您有一个模板 你会这样称为grails-app/views/shared/_mySharedTemplate.gsp
将其引用为:<g:render template="/shared/mySharedTemplate" />