Symfony2: uso de activos en plantillas de subdiseño
Frecuentes
Visto 331 equipos
0
Estoy trabajando en una aplicación Symfony2 y estoy tratando de importar recursos (aquí, css y js) en una plantilla de ramita específica, en lugar de en las plantillas de diseño. Sin embargo, lo que probé no parece funcionar cuando uso la propiedad extends. Pero todavia sí funciona cuando no hay herencia de diseño.
Aquí está el código que usé:
{% block stylesheets %}
{% stylesheets 'bundles/mybundlename/css/style.css'
filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
{% endstylesheets %}
{% endblock %}
{% block javascripts %}
{% javascripts 'bundles/mybundlename/js/jquery-1.7.2.min.js'
'bundles/mybundlename/js/jquery-ui-1.8.20.custom.min.js'
%}
<script src='{{ asset_url }}' type='text/javascript'></script>
{% endjavascripts %}
{% endblock %}
{% extends "MyBundle::layout.html.twig" %}
... the rest of my template ...
En pocas palabras, ¿cómo importaría esos recursos en mi plantilla heredada? ¿O simplemente es mejor importarlos en el diseño general (pero luego se carga para cada página :/)?
Editar: también he usado los tipos de ruta @MyBundle, y el motor los está buscando (si la ruta es incorrecta, aparece un error), pero los recursos no se agregan a la sección html.
Segunda edición: la razón por la que no funcionó es probable que no haya declarado el {{% blocks %}}
en mi diseño de nivel superior. Lo hice y usé {{ parent() }} (como una cuestión de "limpieza") en mis subdiseños y páginas, y funciona.
1 Respuestas
1
{% extends ... %}
debe ser lo primero.
Es posible que también desee utilizar el parent
función para agregar a las hojas de estilo y javascripts definidos en el diseño en lugar de sobrescribirlos.
Respondido el 12 de junio de 12 a las 09:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php symfony twig or haz tu propia pregunta.
De hecho, probé ambos, pero como acabo de editar, los recursos se buscan, pero en realidad no se cargan en la página. - gabriel theron
Entonces tienes un problema en otro lado. Mi punto es que is posible hacer lo que quieras. - Elnur Abdurrakhimov
Solucione el problema: si el
{% blocks %}
no están definidos en el diseño de nivel superior, no se importan en los diseños que heredan de ellos. Utilizando el{{ parent() }}
El método funciona muy bien una vez que se definen esos bloques. ¡Gracias! Por cierto, he creado una sala de chat para Symfony2, si también trabajas con ella... bueno, solo digo :) - gabriel theron