2010-08-05 10 views
17

Soy muy nuevo en jinja2 y en el uso de plantillas en general, así que me preguntaba si existe una manera fácil de cargar un javascript externo. Yo estaba pensando en usar:Cargando script externo con la directiva de plantilla jinja2

{% block javascript %} 
    <SCRIPT SRC="myscript.js"></SCRIPT> 
{% endblock %} 

Pero no puedo evitar preguntar:

¿Hay una manera de cargar este script directamente desde dentro de una directiva plantilla?

Respuesta

28

Tiene dos opciones aquí - la primera es la forma en que lo hizo - simplemente agregue el marcado adecuado en una plantilla (o un bloque si desea poder anularlo en plantillas que extienden su primera plantilla .)

La segunda manera es utilizar include función de Jinja2:

{% block javascript %} 
    <script type="text/javascript"> 
     {% include "myscript.js" %} 
    </script> 
    <!-- The contents of myscript.js will be loaded inside the script tag --> 
{% endblock %} 

La ventaja de usar include es que Jinja2 procesará su javascript antes de incluirla - lo que significa que puede tener variables en su javascript que cambiar dependiendo del estado de tu programa.

La desventaja de usar include de esta manera es el mismo - su archivo .js se llevará a cabo a través Jinja2 antes de ser enviado a cabo - si usted no está utilizando el contenido dinámico que sólo se le procesa el archivo innecesariamente para cada petición - - y si está utilizando una biblioteca de plantillas javascript con sintaxis Jinja2, entonces es probable que haya problemas.

+0

Esto básicamente incluirá todo lo que hay dentro del archivo myscript.js entre esas etiquetas, estoy en lo cierto? ¿Alguna razón por la que no pude usar esto para incluir un archivo de texto o algo más? – kirbuchi

+0

@kirbuchi - sí, exactamente. Se aplican los mismos intercambios. –

+0

¡Agradable! muchas gracias – kirbuchi

Cuestiones relacionadas