2012-07-31 16 views
5

Tengo 3 proyectos de Grails 2.x. Para este ejemplo son:Recursos de Grails: La imagen es 404 aunque existe en WAR

ProjectCore - A Grails plugin containing all reusable code (domains, taglibs, etc) 
ProjectWeb  - Front facing web application. Uses ProjectCore 
ProjectAdmin - Admin appliction. Uses ProjectCore 

Casi todas las imágenes, js, taglibs, servicios, etc, son en ProjectCore, con determinados controladores/views/servicios/aplicaciones solamente JS/CSS de los proyectos individuales.

Todo funciona bien a nivel local, utilizando NetBeans IDE como mi. Prefiero el proyecto ProjectAdmin y lo implementé en mi servidor Ubuntu ejecutando Tomcat 6. Todo en la aplicación funciona como se esperaba, excepto 1 imagen: avatar.png (que está contenida en la aplicación ProjectCore).

Estoy usando la etiqueta g: resource para crear todos los enlaces de imagen, y todos se están resolviendo correctamente en la URL /static/images/some_image_name.png correctamente, excepto esta imagen. También verifiqué que la imagen está presente en la guerra (ubicada en plugins/ProjectCore/images donde están todas las otras imágenes).

Para esta imagen en particular, estoy usando un taglib (AvatarTagLib) para crear el enlace a esta imagen si el usuario no ha subido un avatar para sí mismos. Este Taglib está en ProjectRoot, pero se llama desde los otros proyectos. Creo que las otras imágenes están siendo llamadas desde puntos de vista dentro de los proyectos específicos, por lo que podría ser donde está el hangup.

Inicialmente cuando implementé la aplicación, me olvidé de cambiar la propiedad de la guerra (y el directorio que contiene) a tomcat6: tomcat6, por lo que tuve problemas no solo con esta imagen, sino con el archivo messages.properties de SpringSecurityPlugin. Lo eliminé por completo, arreglé los permisos y eso resolvió todos los problemas, excepto este.

Alguien ha encontrado este comportamiento antes, o conoce a otros caminos que puede bajar a resolver esto?

Editar: Una cosa que olvidé mencionar. Cuando intento acceder a la imagen directamente, ya sea a través de http://admin.mydomain.com/images/avatar.png o http://admin.mydomain.com/static/images/avatar.png, ambos devuelven 404. Sin embargo, puedo acceder a otras imágenes de esta manera.

Editar 2: Esto no se limita a una sola imagen. Está afectando aproximadamente la mitad de las imágenes que están en el complemento.

+0

¿Está pasando plugin = 'projectRoot' a su etiqueta? –

+0

@tomas No, yo no soy. ¿Supongo que te refieres a la etiqueta g: resource? Además, he realizado una edición anterior sobre el acceso directo al archivo. – aasukisuki

Respuesta

4

Actualizando el plugin de recursos solucionó este problema para mí. Actualicé BuildConfig.groovy con runtime ":resources:1.2.RC2"

0

Es imposible decirlo realmente sin ver el código.

1) es posible que deba pasar el plugin = por recursos en un complemento 2) ¿Ha intentado r: resource?

Si se puede aislar a un plug-in trivial y aplicación, crear una jira

1

intenta actualizar el plugin recursos a 1.2-RC1.

Tuve un problema muy similar, 3 de mis png de devolvería 404 errores en el acceso directo bajo las dos imágenes y///estáticas imágenes. Las imágenes se llamaron dot.png, calendar.png y dotted_vertical.png. Si les cambié el nombre (por ejemplo, dotted_vertica.png o dotted_vertical1.png) funcionaron, pero no pude encontrar ninguna otra similitud o patrón. Raro de hecho.

0

He tenido el mismo problema.

Lo resolví cambiando el plugin de recursos (runtime ": resources: 1.1.6") al plugin webxml (compile ": webxml: 1.4.1") en BuildConfig.groovy y ahora está funcionando.

Espero que funcione para usted también.

Cuestiones relacionadas