我制作了一个自定义标记库,用于导入所有GSP页面上所需的所有JS和CSS文件。现在的问题是,如果我尝试在Main.gsp布局上使用TagLib,那么标记库就不起作用了。但是,如果我在普通页面上做同样的事情,那么它的效果非常好。
我甚至使用println
检查控制台是否正在计算标记库但没有打印任何内容。相反,如果我在页面上使用相同的tagLib,那么这个println
会在控制台上打印出来,证明它可以在那里工作。
有没有办法让它在Main.gsp布局上运行?
taglib的代码是 -
def globalCSS = { attrs, body ->
out << '<!-- BEGIN GLOBAL MANDATORY STYLES -->'
out << '<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&subset=all" rel="stylesheet" type="text/css">'
out << '<link rel="stylesheet" type="text/css" href="'+g.resource(dir: 'assets/global/plugins/font-awesome/css', file: 'font-awesome.min.css', absolute: true)+'"/>'
out << '<link rel="stylesheet" type="text/css" href="'+g.resource(dir: 'assets/global/plugins/simple-line-icons', file: 'simple-line-icons.min.css', absolute: true)+'"/>'
out << '<link rel="stylesheet" type="text/css" href="'+g.resource(dir: 'assets/global/plugins/bootstrap/css', file: 'bootstrap.min.css', absolute: true)+'"/>'
out << '<link rel="stylesheet" type="text/css" href="'+g.resource(dir: 'assets/global/plugins/uniform/css', file: 'uniform.default.css', absolute: true)+'"/>'
out << '<!-- END GLOBAL MANDATORY STYLES -->'
println("Hello css");
}
main.gsp的代码是 -
<!DOCTYPE html>
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"><!--<![endif]-->
<head>
<myUI:globalCSS/>
<g:layoutHead/>
</head>
<body>
<g:layoutBody/>
</body>
</html>
答案 0 :(得分:-1)
看起来你正在重新发明资源/资产管道插件已经提供的功能。除非你有充分的理由不这样做,否则我建议你改用其中一个,最好是资产管道。