2010-01-11 16 views
16

Ho un paio di librerie Javascript personali che fanno un po 'di brio nelle mie pagine HTML e voglio includerle nelle mie pagine gsp, in particolare nella pagina di destinazione della mia app. Ho provato a metterli nella cartella views e web-app/js e $APP_HOME/scripts ma quando carico il mio index.gsp gli script non vengono visualizzati.Dove dovrei mettere le librerie javascript in un'app Grails?

Ho anche provato una varietà di alternative nel mio codice nessuno dei quali lavoro ...

<script src="mylib.js" type="text/javascript"></script> 
<script src="js/mylib.js" type="text/javascript"></script> 
<script src="scripts/mylib.js" type="text/javascript"></script> 

Sono sicuro che ci sia un modo intelligente graal di fare questo al volo, ma io in realtà solo voglio un luogo in cui posso inserire un codice JavaScript standard che posso usare nella mia app. Con la convenzione sulla configurazione in mente, qual è la pratica prevista?

risposta

12

Con il file JS a: web-app/js/myLib.js, inserendo <g:javascript library="myLib" /> nel layout, penso che sia ciò di cui hai bisogno.

+6

vedi sotto: è sbagliato. è corretto. –

+5

Hai dimenticato js qui @RickMangi. Il modo corretto è: '' – chelder

+0

Cosa succede quando costruisci e distribuisci la tua app? Il javascript è impacchettato automaticamente ??? – RPDeshaies

0

Credo di aver trovato la risposta ...

Se io uso questo tag nel mio GSP (piuttosto che un riferimento diretto javascript)

<g:javascript library="mylib" />  

Poi, quando guardo il sorgente della pagina generata è si riferisce a

<script type="text/javascript" src="/myapp/js/mylib.js"></script> 

Ciò corrisponde alla cartella web-app/js, così ho lasciato la mia libreria di script in là e funziona benissimo. La svolta è stata per me a) rinominare il mio index.html in index.gsp eb) utilizzare il tag g:javascript.

+0

sì esattamente - ho bisogno di digitare più velocemente :) –

+0

inviare la stessa risposta e Ti svaluterò! – Simon

+0

sparare, digiti veloce – Simon

22

Probabilmente NON si dovrebbe usare <g:javascript library="myLib" /> poiché è pensato per essere utilizzato come metodo per rendere indifferente la libreria di chiamate AJAX (scriptaculous, dojo, yahoo, jquery). Vedi grails javascript. Utilizzare invece <g:javascript src="myLib.js" />.

+0

Questo dovrebbe essere contrassegnato come risposta corretta. –

0

Usa <g:javascript src="myscript.js" /> e inserire il vostro script web-app/js/myscript.js

Per tutti i dettagli ed esempi per entrambi i propri script esterni, in linea di codice e librerie vedere http://grails.org/doc/latest/ref/Tags/javascript.html.

+0

Che dire in Grails 3? –

1

Ci sono due modi con cui è possibile includere il file JS e biblioteca JS come Scriptaculous

// actually imports '/app/js/myscript.js' 
<g:javascript src="myscript.js" /> 

// imports all the necessary js for the scriptaculous library 
<g:javascript library="scriptaculous" /> 

<g:javascript>alert('hello')</g:javascript> 

consultare: http://grails.org/doc/latest/ref/Tags/javascript.html

Problemi correlati