我是 django 的菜鸟,我尝试了很多小时来获得一个简单的 dajaxice 运行示例,但我似乎没有找到查找文件的正确方法。
我做了并重新安装,并试图在 stackoverflow 上的许多类似问题中找到答案,比如这个和这个。
我{% dajaxice_js_import %}
输入的标题myapp_index.html
打印为:
<script src="/static/dajaxice/dajaxice.core.js"
type="text/javascript" charset="utf-8"></script>
但它找不到这个文件:
配置不当:静态文件查找器的存储后端没有有效位置。
并且获取失败:
GET /static/dajaxice/dajaxice.core.js HTTP/1.1" 500 59
奇怪的是 dajax 加载:
<script type="text/javascript"
src="{% static /static/dajax/jquery.dajax.core.js" %}"></script>
这是我的文件夹结构:
myproject
----manage.py
----myproject
--------settings.py
--------urls.py
----myapp
--------ajax.py
--------urls.py
--------templates
------------myapp_index.html
我也没有真正理解为什么我们需要两个文件,但是如果我把urls.py
它似乎可以访问myapp_index.html
from django.views.generic.simple import direct_to_template
接着
url(r'^$', direct_to_template, {'template': 'myapp_index.html'}),
inmyapp
的网址格式。
我还尝试了无数的文件名
python manage.py findstatic dajaxice.core.js
但不知何故,它没有找到 dajaxice,即使 dajaxice 已安装并在INSTALLED_APPS
.
由于同样的原因也python manage.py collectstatic
失败了,但如果我理解正确,只要我在开发服务器上,我就不必让它运行。
我想我对底层结构有一些基本的误解。:(
我正在使用预先打包的最新 ubuntu 软件包:
django: 1.4.5,
dajaxice: 0.5.5
提前感谢您的任何提示!
这是模板文件:
{% load static %}
{% load dajaxice_templatetags %}
<html>
<head>
<title>My base template</title>
{% dajaxice_js_import %}
<script type="text/javascript" src="{% static "/static/dajax/jquery.dajax.core.js" %}"></script>
<script type="text/javascript">
function my_js_callback(data){
alert(data.message);
}
Dajax;
Dajaxice;
</script>
</head>
...
<button onclick="Dajaxice.myproject.myapp.sayhello(my_js_callback);">Click here!</button>
页面显示,我没有收到 Django 错误,但我在 Firebug 中得到了这个:
"NetworkError: 500 Internal Server Error - http://localhost:8000/static/dajaxice/dajaxice.core.js"
和这个:
ReferenceError: Dajaxice is not defined
Dajaxice;