Cómo incluir css y javascript en la sección principal del encabezado de la plantilla usando el marco web de Grails

He estado usando el complemento de rendimiento de la interfaz de usuario de Grails que maneja esto con los taglibs p: dependdantJavascript.

Entonces di que estoy trabajando en una plantilla _someTemplate.gsp y esta plantilla solo tiene el siguiente contenido:

<div onclick="doSomething()">someContent</div>

ahora me gustaría agregar el javascript doSomething() a la sección de cabecera de la página cada vez que se carga esta plantilla. ¿Hay alguna magia de Grial para hacer esto?

preguntado el 10 de mayo de 11 a las 13:05

1 Respuestas

Puedes poner etiqueta javascript en la plantilla, como:

<g:javascript src="file.js"/>

ACTUALIZACIÓN: La forma general de incluir cualquier archivo javascript y CSS en el encabezado de un diseño es crear una plantilla completa:

<html>
    <head>
        <title><g:layoutTitle default="An example decorator" /></title>
        <!-- javascript & css go here, just like normal gsp/html page -->
        <g:layoutHead /> <!-- for the specific page -->
    </head>
    <body>

        <g:layoutBody /> <!-- render the specific page body -->

        <div onclick="doSomething()">someContent</div>
    </body>
</html>

Se pueden encontrar instrucciones más detalladas aquí.

contestado el 12 de mayo de 11 a las 07:05

¿Qué pasa con JavaScript ('en línea') que es solo un bloque de código? no es un recurso externo? - netbrain

@netbrain: No sé si Grails apoya el caso, pero seguramente no es una buena práctica incluir la misma función en todas las páginas. Sería mejor si escribes ese javascript en línea en un archivo y luego lo incluyes: los usuarios solo necesitan descargar ese archivo una vez. - Hoang Long

Supongo que tiene razón, pero si tiene muchas funciones pequeñas de JavaScript en muchas páginas, esto podría resultar en muchos archivos de JavaScript. De c. siempre puede combinarlos en dos archivos js grandes, pero luego debe descargar un archivo grande cuando solo usa el 1%. - netbrain

y por cierto, ¿qué pasa con los archivos css? - netbrain

@netbrain: la única forma en que se me ocurre para satisfacer su solicitud es crear un diseño en lugar de una plantilla (detalles en la respuesta actualizada). Pero creo que poner funciones de JavaScript en archivos grandes parece ser más fácil de mantener. - Hoang Long

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.