2012-01-30 12 views
12

He estado batallando con varios problemas de inclusión de recursos en mi migración de Grails 1.3.7 de Grails 2.0, probablemente sin entender algunas cosas para empezar.grails 2.0 incluyendo recursos de la manera simple?

En primer lugar, lo que hace

<g:javascript library="application" /> 

hacer? (esto estaba en el main.gsp predeterminado proporcionado en Grails 1.3.7).

En segundo lugar, para la inclusión de jQuery a través de mi solicitud, ¿puedo hacer

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

en la parte superior de mi página principal SiteMesh que hace el

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

y "acabar de una vez", usando el

<r:layoutResources /> 

un segundo tiempo después de la

<g:layoutBody /> 

Gracias

Respuesta

12

Sí me costó un poco con esto al principio también. .

Así que en primer lugar el <g:javascript library="application" /> se refiere a un módulo definido en una config/* archivo Resources.groovy (por defecto es config/ApplicationResources.groovy), en el interior que has presentado módulos, por ejemplo:

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

segundo por ejemplo, un main.gsp Grails2 (cutdown mucho aquí):

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

esperanza que le fija en la dirección correcta

+0

pregunta - es la "aplicación" en el g: javascript ta g, así como la que está en la etiqueta r: require, refiriéndose al prefijo "Application" de ApplicationResources.groovy, o refiriéndose a la declaración {} de la aplicación dentro de ApplicationResources.groovy? – Ray

+0

Creo que es solo el de ApplicationResouces.groovy, donde se recogerá cualquier archivo que coloque en este directorio de configuración, de la documentación semifusión sobre este tema, y ​​por lo que yo sé no hay documentación previa sobre la pregunta original (en 1.3.7). – Ray

+1

Se refiere al nombre del módulo en el archivo. El patrón de nombre de archivo es * Resource.groovy; por lo que podría haber sido MyResources.groovy y el nombre del módulo podría haber sido "aplicación", pero entonces el r: requerir habría tenido que actualizarse para apuntar a "aplicación" ... Estoy bastante seguro de que g: javascript es el mismo – Steve

Cuestiones relacionadas