如何在Grails应用程序中正确包含JS库?

时间:2014-05-22 17:21:22

标签: grails javascript grails-plugin

我正在编写我的第一个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条目需要什么值?

2 个答案:

答案 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>

http://grails.org/plugin/asset-pipeline

答案 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?