2010-01-11 13 views
16

Tengo un par de bibliotecas de Javascript propias que hacen algunas bonitas compras de mis páginas HTML y quiero incluirlas en mis páginas gsp, particularmente en la página de inicio de mi aplicación. He intentado ponerlos en la carpeta views y web-app/js y $APP_HOME/scripts, pero cuando cargo mi index.gsp, los scripts no aparecen.¿Dónde debería colocar bibliotecas de JavaScript en una aplicación de Grails?

También he probado una gran variedad de alternativas en mi código ninguno de los cuales el trabajo ...

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

Estoy seguro de que hay una manera inteligente griales de hacerlo sobre la marcha, pero en realidad sólo quiero un lugar donde pueda colocar algún código JavaScript repetitivo que pueda usar en mi aplicación. Teniendo en cuenta la convención sobre la configuración, ¿cuál es la práctica esperada?

Respuesta

12

Con su archivo JS en: web-app/js/myLib.js, poniendo <g:javascript library="myLib" /> en su diseño, creo que es lo que necesita.

+6

ver a continuación: esto es incorrecto. es correcto. –

+5

Olvidó js aquí @RickMangi. La forma correcta es: '' – chelder

+0

¿Qué sucede cuando compila e implementa su aplicación? Es el JavaScript empaquetado automáticamente ??? – RPDeshaies

0

Creo que he encontrado la respuesta ...

Si utilizo esta etiqueta en mi GSP (en lugar de una referencia directa Javascript)

<g:javascript library="mylib" />  

Luego, cuando miro a la página de origen que genera se refiere a

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

Esto corresponde a la carpeta web-app/js, por lo que cayó mi biblioteca de scripts allí y trabaja muy bien. El avance fue para mí a) cambiar el nombre de mi index.html a index.gsp yb) usar la etiqueta g:javascript.

+0

sí exactamente - tengo que escribir más rápido :) –

+0

publicar la misma respuesta y ¡Te voy a apoyar! – Simon

+0

disparar, escribe rápido – Simon

22

Probablemente NO deba utilizar <g:javascript library="myLib" /> ya que está destinado a ser utilizado como una forma de hacer que las llamadas AJAX llamen la biblioteca (scriptaculous, dojo, yahoo, jquery) indiferente. Ver grails javascript. En su lugar, use <g:javascript src="myLib.js" />.

+0

Esto debe marcarse como la respuesta correcta. –

0

Uso <g:javascript src="myscript.js" /> y coloque la secuencia de comandos en web-app/js/myscript.js

Por todo detalle y ejemplos para ambos sus propios scripts externos, en la línea de código y bibliotecas ver http://grails.org/doc/latest/ref/Tags/javascript.html.

+0

¿Qué tal en grails 3? –

1

Hay dos maneras por las cuales se pueden incluir archivos JS y la biblioteca de JS como 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> 

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

Cuestiones relacionadas