使用Grails Resource插件,您可以使用这样的gsp布局:
<!DOCTYPE html>
<html>
<head>
<g:layoutHead/>
<r:layoutResources />
</head>
<body>
<g:layoutBody/>
<g:javascript library="jquery" plugin="jquery" />
<r:layoutResources />
</body>
使用r:layoutResources标记,您可以指定资源应该包含在JQuery之后的页面底部,JQuery位于布局gsp的底部。
有没有办法对资产管道插件做同样的事情?在JQuery包含后,如何将资源放在文档事件的底部?
答案 0 :(得分:4)
在你的布局文件中,输入:
<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>
在你的页面(即index.gsp)中,把这个
<html>
<body>
...
...
</body>
</html>
<content tag="footScripts">
<asset:javascript src="jqueryui/jquery-ui.min"/>
</content>
这样,您可以使用各个页面中定义的内容扩展布局。
Grails 3 documentation ( though the same in Grails 2 )
参见章节8.2.6 Sitemesh内容块
答案 1 :(得分:1)
我只是在.gsp或布局文件的底部添加行:
<asset:stylesheet src="xxx.css"/>
<asset:javascript src="xxx.js"/>
xxx.js
和xxx.css
可以包含用于加载更多内容的清单。
您将通过清单加载JQuery:
xxx.js
:
//= require jquery
//= require select2.min.js
//= require_self
答案 2 :(得分:0)
您可以使用<g:pageProperty/>
标记解决此问题,无论您使用哪种插件(无论如何,我都像您一样使用 asset-pipeline 测试解决方案)。
解决方案的教程在这里:http://mythinkpond.com/2014/02/02/grails-adding-javascript-bottom-page/
答案 3 :(得分:0)
如果要在子脚本上添加多个脚本,可以像
一样进行 parent.gsp
<g:each in="${pageScript}">
<asset:javascript src="${it.value}.js"/>
</g:each>
您的child.gsp
<g:set var="pageScript" value="['script1, script2']"/>