باستخدام البروتوفيس مع 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 ، يتم عرض صورة "Hello World" protovis مع السلسلة "{{Object.name}}".
ولكن عند الوصول إلى قالب ملف .html من خادم Django الخاص بي ، أرى فقط {{Object.name}} (مطبوع اسم الكائن).
لم أجد مشكلات مماثلة حتى الآن ، تقديم الطعام لاستخدام Protovis في Django. إذا كان أي شخص قد عمله أو يعرف ما أفعله خطأ ، فيرجى إخبارنا بذلك.
شكرًا،
المحلول
لقد طلبت استخدام ملف JavaScript src="protovis-r3.2.js"
عندما تنظر إلى ملف HTML مباشرةً ، سيبحث متصفحك في نفس الدليل مثل ملف .html لملف يسمى protovis-r3.2.js.
ومع ذلك ، عندما تطلب من Django تقديم هذه الصفحة نفسها ، فإنها لا تتبع نفس البروتوكول. نرى هذه المقالة للمزيد من المعلومات.
للحصول عليه للعمل:
انقل ملف Protovis-R.32.js إلى دليل جديد:
/path/to/my/django_site/static
(أين/المسار/إلى/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"