Django的CachedStaticFilesStorage未对文件URL进行哈希处理
我想给我的一些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 %}
2 个回答
2
在Django 1.10版本中,这个问题已经解决了,具体可以在文档中找到说明:
在旧版本中,你还需要在模板中使用
{% load static from staticfiles %}
。现在,如果安装了django.contrib.staticfiles,静态模板标签({% load static %}
)会自动使用它。
13
这真是个棘手的问题……如果你仔细阅读文档,你会了解到:
……在你的模板中使用
staticfiles
static
模板标签来引用你的静态文件……
所以,不要这样做:
{% load static %}
而是使用:
{% load staticfiles %}