tag tab page change javascript grails gsp

tab - ¿Dónde debo colocar las bibliotecas de javascript en una aplicación de Grails?



title of page javascript (5)

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

Tengo un par de bibliotecas de Javascript propias que cumplen con mis funciones HTML y quiero incluirlas en mis páginas de gsp, en particular la página de inicio de mi aplicación. He intentado colocarlos en la carpeta de views y web-app/js y $APP_HOME/scripts pero cuando cargo mi index.gsp los scripts no aparecen.

También he probado una variedad de alternativas en mi código, ninguna de las cuales funciona ...

<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 forma inteligente de hacer esto sobre la marcha, pero realmente solo quiero una ubicación donde pueda colocar un código de JavaScript que pueda usar en mi aplicación. Con la convención sobre la configuración en mente, ¿cuál es la práctica esperada?


Creo que encontré la respuesta ...

Si uso esta etiqueta en mi gsp (en lugar de una referencia javascript directa)

<g:javascript library="mylib" />

Entonces cuando miro la fuente de la página generada se refiere a

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

Esto corresponde a la carpeta web-app/js , así que dejé mi biblioteca de scripts allí y funciona bien. El avance fue para mí a) renombrar mi index.html a index.gsp yb) usar la etiqueta g:javascript .


Hay dos formas en que puede incluir el archivo JS y la biblioteca 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


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