2014-03-02 74 views
12

我想在我的JavaScript和CSS文件中啓用版本控制,因爲我在網站上工作時遇到了緩存問題。我在Django 1.6中閱讀了CachedStaticFilesStorage,它看起來很完美。我修改了我的settings.py以下設置:Django的CachedStaticFilesStorage不哈希文件URL

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

我也不知道如何將哈希注入文件名... {%static%}標記似乎沒有這樣做...也使用Django 1.6 – ilovett

回答

11

很詭異的......如果你仔細閱讀文檔,你將瞭解到:

...使用staticfilesstatic模板標籤以指代您的模板中的靜態文件...

因此,而不是:

{% load static %} 

使用

{% load staticfiles %} 
+2

完美,煩人,這是沉默失敗 – Steve

2

這是固定在Django 1.10,如documentation解釋說:

在舊版本中,你也有你的模板中使用{% load static from staticfiles %}。如果已安裝,靜態模板標記({% load static %})現在使用django.contrib.static文件。