我正在编写我的第一个Grails(2.3.6)应用程序,需要使用以下库:
我想从web-app/js/application.js
文件中配置这些库。我不确定我是否应该:
web-app/js/
目录,然后将其作为<script>
元素从我的GSP内导入(见下文);或BuildConfig.groovy
拉出来。采用前一种方法:
// Inside index.gsp:
<body>
<script type="text/javascript" src="${resource(dir: 'js', file: 'signals.min.js')}" />
<script type="text/javascript" src="${resource(dir: 'js', file: 'crossroads.min.js')}" />
<script type="text/javascript" src="${resource(dir: 'js', file: 'hasher.min.js')}" />
<script type="text/javascript" src="${resource(dir: 'js', file: 'application.js')}" />
</body>
采用后一种方法:
// Inside BuildConfig.groovy:
plugins {
runtime: ":signals:???"
runtime: ":crossroads:???"
runtime: ":hasher:???"
}
使用Grails的正确方法是什么?为什么?而且,如果后一种方法是普遍接受的方法,那么每个runtime
条目需要什么值?
答案 0 :(得分:1)
就个人而言,如果您认为这些图书馆非常适合社区并且您想要维护它们,那么我只会去插件路线。看来你应该使用上面提到的资源插件或者资产管道插件。
就个人而言,我肯定会使用资产管道插件而不是资源。它将是2.4和IMHO中的默认方式,使用起来更容易,更快捷。许多其他插件已经与它集成,并且使用起来很简单。您还可以添加库的完整非缩小版本,以便您可以在开发中访问它们以进行调试,当您对项目进行战争时,插件将自动缩小并捆绑它们。
1)将您的库添加到/ assets / js /。 2)将其添加到application.js
//This is a javascript file with its top level require directives
//= require signals.js
//= require crossroads.js
//= require hasher.js
//= require_self
console.log("This is my javascript manifest");
3)将资产添加到您的页面或布局
<head>
<asset:javascript src="application.js"/>
</head>
答案 1 :(得分:0)
在Grails 2中没有资产管道,并且作为诸如CKEditor之类的资产管道问题的变通办法,我必须做:
<g:javascript src="ckeditor/ckeditor"></g>
在我的appLayout中,然后将该库添加到web-app / js。 (显然,CKE在资产管道方面存在问题。)
以下是文档(Grails v.2.3.7): https://grails.github.io/grails2-doc/2.3.7/ref/Tags/javascript.html
我还发现此链接非常有用: Where should I put javascript libraries in a Grails app?