所以我仍然在研究这个问题并且它有所改变。以下是基础知识:
我已经安装了Django-chartit及其依赖。
我已更新settings.py以模仿图表示例here。
INSTALLED_APPS = (
...
'highcharts', # for chartit app
'django.contrib.staticfiles', # for chartit app
'jquery', # for chartit app
'chartit',
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'staticfiles'),
'/usr/local/lib/python2.7/dist-packages/chartit/static/chartit/js/chartloader.js',
'/usr/local/lib/python2.7/dist-packages/chartit/static/chartit/js/',
'/usr/local/lib/python2.7/dist-packages/chartit/static/',
)
STATICFILES_FINDERS = (
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder"
)
我的Safari网络检查员指出:ReferenceError:无法找到变量:$(chartloader.js,第3行)
终端中的服务器活动说明:
[17/Apr/2014 13:20:25] "GET /temp/herdAvgTemp/ HTTP/1.1" 200 1092
[17/Apr/2014 13:20:26] "GET /static/chartit/js/chartloader.js HTTP/1.1" 200 296
[17/Apr/2014 13:30:36] "GET /temp/herdAvgTemp/ HTTP/1.1" 200 1092
[17/Apr/2014 13:30:36] "GET /static/chartit/js/chartloader.js HTTP/1.1" 304 0
这向我表明它实际上是在找到js文件,它只是不确定" $"变量。
我已经将问题进一步定义,但不确定如何解决这个问题。我还没有找到类似的问题来比较。
感谢阅读。 麦克
***********************以下信息********************* *
我正在关注第一个Django-chartit tutorial,我的浏览器检查员在此处显示它正在寻找a js file(并且没有找到它):
<script src="/static/chartit/js/chartloader.js" type="text/javascript">
</script>
该文件实际位于我的Ubuntu / Django VM上:
apps@ubuntu:/usr/local/lib/python2.7/dist-packages/chartit/static/chartit/js/chartloader.js
这导致图表无法加载。 Chartit,Jquery和Highcharts都安装没有错误。我在Web浏览器会话中看到我的模板正常(除了检查器中与未找到js文件相关的错误)。我也在检查器中的js数组中看到我的数据,所以我认为应用程序有点工作正常。我想知道我是如何修理它以便查看正确的位置?将绝对路径硬编码到我的模板中似乎是错误的。我也试过了this SO solution而没有改变错误。
感谢您的帮助!
麦克
编辑:我的INSTALLED_APPS是:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
'temp',
'highcharts', # for chartit app
'django.contrib.staticfiles', # for chartit app
'jquery', # for chartit app
'chartit',
)
我没有在settings.py中看到其他请求的设置。
***编辑:因为我搞砸了下面的评论,这里格式化了:
所以我做了一些更多的研究,我没有在static_url下面的设置中写任何东西,所以我根据一些指令添加了以下内容,重新启动服务器之后没有任何变化:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
# '/usr/local/lib/python2.7/dist-packages/chartit/static/',
'/usr/local/lib/python2.7/dist-packages/chartit/static/chartit/js/chartloader.js',
)
STATICFILES_FINDERS = (
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder"
)
我还更新了我的模板以测试到目前为止没有运气。我最近的一次尝试:
<head>
<!-- code to include the highcharts and jQuery libraries goes here -->
<!-- load_charts filter takes a comma-separated list of id's where -->
<!-- the charts need to be rendered to -->
{% load chartit %}
{% load staticfiles %}
{{ testchart|load_charts:"container" }}
</head>
<body>
<div id='container'>Test chart should load here. if its working. which its not. because you are seeing this message :(</div>
</body>
答案 0 :(得分:0)
您可能需要运行python manage.py collectstatic
。
这为我解决了。