En utilisant Protovis avec Django
Question
Je suis en train de faire fonctionner correctement Protovis dans mon site Django. Voici mon exemple de code:
<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>
Quand j'ouvre ce fichier directement dans Firefox, une image Bonjour tout le monde 'Protovis s'affiche toguether avec la chaîne "{{object.name}}".
Mais pour accéder au modèle de fichier .html de mon serveur Django, je ne vois le {{object.name}} (nom de l'objet imprimé).
Je n'ai pas trouvé à ce jour des questions similaires, la restauration à l'utilisation Protovis dans Django. Si quelqu'un a obtenu ce travail ou de savoir ce que je fais mal, s'il vous plaît laissez-moi savoir.
Merci,
La solution
Vous avez demandé le fichier javascript à l'aide src="protovis-r3.2.js"
Quand vous regardez le fichier html directement, votre navigateur regardera dans le même répertoire que le fichier .html pour un fichier appelé protovis-r3.2.js.
Cependant, lorsque vous demandez à Django pour servir cette même page, il ne suit pas le même protocole. Voir cet article pour plus d'informations.
Pour obtenir au travail:
-
Déplacer le fichier protovis-r.32.js à un nouveau répertoire:
/path/to/my/django_site/static
(où / chemin / vers / ma / django_site est le chemin absolu à l'application django) -
Configurer urls.py avec la ligne:
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': '/path/to/my/django_site/static'}),
- Modifier l'attribut src de la balise de script dans votre code html à:
src="/static/protovis-r3.2.js"