我想为我的一些javascript和css文件启用版本控制,因为我在网站上工作时遇到了缓存问题。我在Django 1.6中读到了CachedStaticFilesStorage,看起来很完美。我将settings.py修改为以下设置:
STATIC_ROOT = 'staticfiles'
STATIC_URL = ''
# Additional locations of static files
STATICFILES_DIRS = (
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.CachedStaticFilesStorage'
作为测试我然后重写了最有问题的css标签,看它是否会开始散列文件路径。每当我尝试加载页面时,我都会收到500错误。
我出错的任何想法?我错过了一个额外的步骤吗?
模板中的条目:
{% block cssfiles %}
{% load static%}
<link href="{% static "/static/css/mapmaker.css" %}" media="screen">
{% endblock %}
答案 0 :(得分:12)
非常棘手......如果您仔细阅读文档,您将学习:
...使用
staticfiles
static
模板标记来引用模板中的静态文件...
所以而不是:
{% load static %}
使用
{% load staticfiles %}
答案 1 :(得分:2)
这在Django 1.10中得到修复,如documentation:
中所述在旧版本中,您还必须在模板中使用
{% load static from staticfiles %}
。静态模板标记({% load static %}
)现在使用django.contrib.staticfiles(如果已安装)。