将JavaScript放在Grails资产管道的底部

将JavaScript放在Grails资产管道的底部,javascript,grails,groovy,asset-pipeline,grails-2.0,Javascript,Grails,Groovy,Asset Pipeline,Grails 2.0,使用Grails资源插件,您可以使用如下gsp布局: <!DOCTYPE html> <html> <head> <g:layoutHead/> <r:layoutResources /> </head> <body> <g:layoutBody/> <g:javascript library="jquery" plugin="jquery" />

使用Grails资源插件,您可以使用如下gsp布局:

<!DOCTYPE html>
<html>
<head>
    <g:layoutHead/>
    <r:layoutResources /> 
</head>
<body>
   <g:layoutBody/>


   <g:javascript library="jquery" plugin="jquery" /> 

   <r:layoutResources />

</body>

使用标记可以指定资源应该包含在JQuery之后的页面底部,JQuery位于布局gsp的底部


是否有办法对资产管道插件执行相同的操作?在JQuery include之后,如何将资源放在文档事件的底部?

我只需在.gsp或布局文件的底部添加行:

<asset:stylesheet src="xxx.css"/>
<asset:javascript src="xxx.js"/>

您可以使用
标记来解决这个问题,不管您使用的插件是什么(无论如何,我用像您一样的资产管道测试了这个解决方案)


解决方案教程如下:

在布局文件中,放置以下内容:

<html>
<body>
....
<!-- Your layout scripts -->
<asset:javascript src="app.js"/>

<!-- Custom placeholder for page scripts -->
<g:ifPageProperty name="page.footScripts">
    <g:pageProperty name="page.footScripts" />
</g:ifPageProperty>

</body>
</html>

....


请参阅第8.2.6章Sitemesh内容块

如果要在子脚本上添加多个脚本,可以按如下方式执行

您的
parent.gsp的底部

<g:each in="${pageScript}">
    <asset:javascript src="${it.value}.js"/>
</g:each>
<g:set var="pageScript" value="['script1, script2']"/>

如果不将JQuery添加到布局文件中,这将不起作用,因为布局中的JQuery将包含在xxx.js.it之后。我在layout.gsp的
中列出的
application.js
调用清单中包含JQuery内容。我还认为您可以在xxx清单中添加JQuery。我不喜欢这个解决方案。@请确认您不喜欢这个解决方案的原因?同样可以在参考资料插件中完成。您可以定义jQuery模块并定制一个新模块,该模块依赖于jQuery模块。我看不出有什么理由不采用答案中所示的方式@证实
<g:each in="${pageScript}">
    <asset:javascript src="${it.value}.js"/>
</g:each>
<g:set var="pageScript" value="['script1, script2']"/>