Django chartit app找不到chartloader.js(变量)

时间:2014-04-15 20:08:07

标签: django

所以我仍然在研究这个问题并且它有所改变。以下是基础知识:

我已经安装了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>

1 个答案:

答案 0 :(得分:0)

您可能需要运行python manage.py collectstatic

这为我解决了。