entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Problema con AsseticBundle y las rutas inexistentes

Assetic, sin comerlo ni beberlo (es decir, que no tengo ni idea de porqué), no me deja utilizar ningún recurso, ni cssm ni less, ni js...

{% stylesheets output='/style/app.css'
    '@VendorBundle/Resources/style/main.css'
%}
    <link rel="stylesheet" href="{{ asset_url }}"/>
{% endstylesheets %}

Si utilizo el tag stylesheets o javasccripts es como si Assetic no tuviera ni idea de qué hacer con ellos... En el config_dev.yml la opción use_controller está en true. No encuentro ningún error. Symfony me muestra el siguiente error:

An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "_assetic_aca6c7a_0" as such route does not exist.") in "VendorBundle::template.html.twig".

Creo que tengo algún problema con la cache, por que hace un poco el tonto y tengo que borrarla a mano, pero tampoco sé como atacar este problema... Alguna ayuda por favor?

2 Respuestas

0voto

juanber84 Puntos320

Tienes que registrar el bundle en app/config/config.yml en la seccion assetic.
Saludos

0voto

xavier_fuentes_ferna comentado

Ya lo había probado también... y sigue lanzando exactamente el mismo error...

1voto

juanber84 comentado

Acabo de ver que no lo estas haciendo bien, pon lo que te comente en el config.ym y mete esto:

{% stylesheets 'bundles/nombredetubundle/style/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

Cuando hagas el assets:install web te subirá una carpeta con el nombre de tu bundle a la parte publica con lo que tengas dentro de resource/public de tu bundle.
En el ejemplo que te paso cargará todos los css y el nombre los que tenga después puedes aplicarle los filtros que quieras tal como lo tienes.

Saludos

0voto

xavier_fuentes_ferna comentado

El filtro cssrewrite solo sirve para reparar las rutas relativas que incluyas dentro de los CSS, por ejemplo, con los backgrounds. Por un issue en Symfony si usas ese filtro, la documentación dice que recomienda la notación del bundle que tú comentas http://symfony.com/doc/current/cookbook/assetic/asset_management.html#including-css-stylesheets Pero es completamente compatible. Esto tampoco lo arregla... :(

0voto

juanber84 Puntos320

Para el tema de la cache si usas un unix, ya sea linux o mac, puedes instalar este bundle:
https://packagist.org/packages/fourcoders/cache-clear-bundle
https://github.com/fourcoders/Cacheclearbundle

Y usarlo con este comando en la consola de symfony unix:cache:clear

Te dará los permisos correctos a la cache y log y no volverás a tener problemas.

Saludos.

0voto

xavier_fuentes_ferna comentado

Muchas gracias por echarme una mano Juan, estoy un poco desesperado, por que no encuentro solución y te aseguro que he probado muchas soluciones; Pero este bundle lo único que hace es borrar el contenido de la carpeta app/cache y app/logs:

exec('rm -rf app/cache/*', $retval);
exec('rm -rf app/logs/*', $retval);

y cambiar la lista de acceso de estos directorios:

exec('setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs', $retval);
exec('setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs', $retval);

y no tiene sentido instalar el bundle solo para eso, porque estos directorios están en modo 777 así que no debería haber problemas a la hora de crear archivos dentro.

0voto

juanber84 comentado

Mirate en la documentación:
http://symfony.com/doc/current/book/installation.html
Ese bundle es justo lo que te dice symfony que deberías de hacer con la cache, pruebalo y verás que no tendrás mas ese problema, total es un composer update xD.
Saludos

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta