2012-01-30 16 views
12

Ho combattuto vari problemi di inclusione delle risorse nella mia migrazione da Grails 1.3.7 di Grails 2.0, probabilmente non comprendendo alcune cose per cominciare.grails 2.0 incluse le risorse in modo semplice?

In primo luogo, che cosa fa

<g:javascript library="application" /> 

fare? (questo era in default.g.gsp fornito in Grails 1.3.7).

In secondo luogo, per l'inclusione di jQuery in tutta la mia domanda, posso solo fare

<r:require module='jquery' /> 
<r:layoutResources /> 

nella parte superiore della mia pagina SiteMesh principale che fa il

<g:layoutHead /> 
    ... 
<g:layoutBody /> 

e "farla finita", utilizzando il

<r:layoutResources /> 

una seconda volta dopo il

<g:layoutBody /> 

Grazie

risposta

12

Sì, ho lottato un po 'con questo in un primo momento anche. .

Quindi in primo luogo la <g:javascript library="application" /> si riferisce ad un modulo definito in un file config/Resources.groovy * (di default è config/ApplicationResources.groovy), all'interno di quella che avete chiamato moduli, ad esempio:

modules = { 
    application { 
      resource url: 'js/jquery/jquery-ui-1.8.15.custom.min.js', disposition: 'head' 
    } 
} 

In secondo luogo per esempio, un main.gsp Grails2 (cutdown molto qui):

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title><g:layoutTitle default="Grails"/></title> 
    <link rel="stylesheet" href="${resource(dir: 'css', file: 'main.css')}" type="text/css"> 
    <link rel="stylesheet" href="${resource(dir: 'css', file: 'mobile.css')}" type="text/css"> 

    <link rel="stylesheet" href="${resource(dir: 'css/redmond', file: 'jquery-ui-1.8.15.custom.css')}" type="text/css"> 

    <g:layoutHead/> 
    <g:javascript library="jquery"/> 

    <r:require module="application"/> 
    <r:layoutResources/> 

</head> 

<body> 
    <g:layoutBody/> 
    <r:layoutResources/> 
</body> 
</html> 

speranza che si pone nella giusta direzione

+0

domanda - è il "applicazione" nel g: javascript ta g, così come quello nella r: require tag, facendo riferimento al prefisso "Application" di ApplicationResources.groovy, o facendo riferimento alla dichiarazione dell'applicazione {} all'interno di ApplicationResources.groovy? – Ray

+0

Sto pensando che sia solo quello in ApplicationResouces.groovy, dove verranno raccolti tutti i file che hai inserito in questa directory di configurazione, dalla documentazione semi-confusionaria su questo argomento, e per quanto posso dire, nessuna documentazione precedente su la domanda originale (in 1.3.7). – Ray

+1

Si riferisce al nome del modulo nel file. Il modello del nome del file è * Resource.groovy; quindi avrebbe potuto essere MyResources.groovy e il nome del modulo avrebbe potuto essere "app" ma poi r: require avrebbe dovuto essere aggiornato per puntare a "app" .... Sono abbastanza sicuro che g: javascript è il stesso – Steve

Problemi correlati