Django的CachedStaticFilesStorage没有哈希文件网址

时间:2014-03-02 17:14:45

标签: python css django versioning

我想为我的一些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 个答案:

答案 0 :(得分:12)

非常棘手......如果您仔细阅读文档,您将学习:

  

...使用 staticfiles static模板标记来引用模板中的静态文件...

所以而不是:

{% load static %}

使用

{% load staticfiles %}

答案 1 :(得分:2)

这在Django 1.10中得到修复,如documentation

中所述
  

在旧版本中,您还必须在模板中使用{% load static from staticfiles %}。静态模板标记({% load static %})现在使用django.contrib.staticfiles(如果已安装)。