我正在尝试编写一个grails插件,以允许grails应用程序扫描qr代码。我正在使用jsqrcode https://github.com/LazarSoft/jsqrcode来执行qr代码的实际解释。
这意味着我需要在任何使用我的qrcode扫描标记的页面中包含许多javascript文件。
现在,我已经创建了一个只导入脚本的标记,如下所示:
StringBuilder sb = new StringBuilder()
sb << """<script src="/${grails.util.Metadata.current.'app.name'}/js/jsqrcode/grid.js"></script>"""
...
sb.toString()
这对我来说很糟糕。
有没有更好的(对吗?)方式来解决这个问题?
为了澄清,创建一个标签以导入特定的javascript感觉就像一个kludge至少有两个原因。首先,这要求使用插件的人必须在使用此库的任何页面中包含此“import”标记一次(我不是非显而易见的依赖的粉丝)。第二,我担心使用
${grails.util.Metadata.current.'app.name'}
可能会给使用网址映射的人带来问题。
答案 0 :(得分:1)
对于处理JS包含,最好绑定到Grails Asset Pipeline插件,这将成为grails 2.4中的默认插件。该插件已经有办法确保文件只包含一次,请查看{{ 3}}