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,
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"