Используя Protovis с Django
Вопрос
Я пытаюсь получить Protovis, работая на моем сайте Django. Вот мой образец код:
<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>
Когда я открываю этот файл непосредственно в Firefox, отображается изображение Worldovis «Hello World», с помощью строки «{{Object.name}}».
Но при доступе к шаблону файла .html с моего сервера django я вижу только {{object.name}}} (имя объекта, напечатанное).
До сих пор я не нашел подобных вопросов, обслуживающих использование протовиса в Джангу. Если кто-то получил его работать или узнать, что я делаю не так, пожалуйста, дайте мне знать.
Спасибо,
Решение
Вы попросили файл JavaScript, используя src="protovis-r3.2.js"
Когда вы смотрите на HTML-файл напрямую, ваш браузер будет выглядеть в том же каталоге, что и файл .html для файла, называемого protovis-r3.2.js.
Однако, когда вы спрашиваете Django, чтобы обслуживать эту же страницу, она не соблюдает тот же протокол. Видеть эта статья Чтобы получить больше информации.
Чтобы получить его на работу:
Переместите файл Protovis-R.32.js в новый каталог:
/path/to/my/django_site/static
(где / path / to / my / django_site - абсолютный путь к приложению Django)Настройте URLS.PY с линией:
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': '/path/to/my/django_site/static'}),
- Измените атрибут SRC тега скрипта в вашем HTML-коде, чтобы:
src="/static/protovis-r3.2.js"