Utilizzando Protovis con Django
Domanda
Sto cercando di ottenere Protovis di lavoro nel mio sito Django. Qui è il mio codice di esempio:
<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>
Quando ho aperto il file direttamente in Firefox, l'immagine a Protovis 'Ciao mondo' viene visualizzato toguether con la stringa "{{}} object.name".
Ma quando si accede al modello di file .html dal mio server Django, vedo solo il {{}} object.name (il nome dell'oggetto stampato).
non ho trovato problemi simili finora, di catering per l'uso Protovis in Django. Se qualcuno ha ottenuto esso di lavoro o di sapere che cosa sto facendo male, per favore fatemelo sapere.
Grazie,
Soluzione
che hai chiesto il file JavaScript utilizzando src="protovis-r3.2.js"
Quando si guarda il file html direttamente, il browser cercherà nella stessa directory del file HTML per un file chiamato Protovis-r3.2.js.
Tuttavia, quando si chiede Django per servire questa stessa pagina, che non segue lo stesso protocollo. Vedere questo articolo per ulteriori informazioni.
Per farlo funzionare:
-
Spostare il file Protovis-r.32.js in una nuova directory:
/path/to/my/django_site/static
(dove / path / to / mio / django_site è il percorso assoluto al app Django) -
Configura urls.py con la linea:
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': '/path/to/my/django_site/static'}),
- Cambia l'attributo src del tag script nel codice html:
src="/static/protovis-r3.2.js"