Pregunta

Estoy tratando de conseguir Protovis de trabajo en mi sitio de Django. Aquí está mi código de ejemplo:

<html>
    <head>    
    <script type="text/javascript" src="protovis-r3.2.js"></script>
    </head>
    <body>
    <script type="text/javascript+protovis">
        new pv.Panel().width(150).height(150).anchor("center")
            .add(pv.Label)
            .text("Hello, world!")
        .root.render();
    </script>
    {{ object.name }}
    </body>
</html>

Al abrir este archivo directamente en Firefox, una imagen de Protovis 'Hola Mundo' se muestra JUNTOS con la cadena "{{}} object.name".

Sin embargo, cuando se accede a la plantilla del archivo .html de mi servidor de Django, solamente veo el object.name {{}} (el nombre del objeto imprime).

No se han encontrado problemas similares en lo que va, que atienden a su uso Protovis en Django. Si alguien ha conseguido que funcione o saber lo que estoy haciendo mal, por favor hágamelo saber.

Gracias,

¿Fue útil?

Solución

Usted ha pedido el archivo javascript usando src="protovis-r3.2.js"

Cuando nos fijamos en el archivo HTML directamente, el navegador buscará en el mismo directorio que el archivo html para un archivo llamado Protovis-r3.2.js.

Sin embargo, cuando se pregunta Django para servir a esta misma página, no se sigue el mismo protocolo. Ver este artículo para más información.

Para conseguir que funcione:

  • Mover el archivo Protovis-r.32.js a un nuevo directorio: /path/to/my/django_site/static (donde / ruta / a / mi / django_site es la ruta absoluta a la aplicación de Django)

  • Configurar urls.py con la línea:

(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/my/django_site/static'}),

  • Cambiar el atributo src de la etiqueta de script en el código html en:

src="/static/protovis-r3.2.js"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top