2014-05-22 53 views
0

我在寫我的第一個Grails(2.3.6)應用程序,需要使用以下庫:如何在Grails應用程序中正確包含JS庫?

我想這些配置來自web-app/js/application.js文件的庫。我不知道我是否應該:

  • 手動將庫添加到我的web-app/js/目錄中,然後導入它們從我的GSP(見下文)內<script>元素;或
  • 將它們從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

您正在使用的默認下帶有一個Grails應用程序資源插件(直到2.3.9,資源管理的2.4.0默認插件是asset-pipeline)。 ['resources' plugin](http://grails.org/plugin/resources)提供了一套指導方針來有效地管理資源。有關更多詳細信息,請參閱[聲明資源](http://grails-plugins.github.io/grails-resources/guide/3.%20Declaring%20resources.html)doc。 – dmahapatro

+0

Thanks @dmahapatro(+1) - 看起來我需要聲明一個包含所有3個JS庫(Signals,Crossroads和Hasher)的「模塊」,是的?如果是這樣,假設我爲所有3個庫創建了一個包含3個資源的「路由」模塊;我該如何在GSP中包含這個'routing'模塊,以便在頁面加載時可用? – IAmYourFaja

+1

是的。在文檔中轉到[下一頁查看「使用資源」](http://grails-plugins.github.io/grails-resources/guide/4.%20Using%20resources.html)。 :) – dmahapatro

回答

1

就我個人而言,如果您認爲這些圖書館非常適合社區並希望維護它們,我只會選擇插件路線。看起來你應該使用上面提到的資源插件或asset-pipeline插件。

就我個人而言,我肯定會使用資產管道插件而不是資源。這將是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

相關問題