在 Django 中,我们可以ManifestStaticFilesStorage缓存静态文件,但它可以在 Django 和浏览器之间工作,但我希望在用户和浏览器之间有正确的缓存。
我想要:每次更改静态文件时,都会重新计算文件的哈希值,并且浏览器缓存会失效,并且用户无需运行 F5 adn 即可看到新的静态文件--collectstatic --no-input。
我的代码现在不起作用:
settings.py
STATICFILES_STORAGE = 'auth.utils.HashPathStaticFilesStorage'
CACHES = {
'staticfiles': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'staticfiles',
'TIMEOUT': 3600 * 24 * 7,
'MAX_ENTRIES': 100,
}
}
Run Code Online (Sandbox Code Playgroud)
和auth.utils.py:
# -*- coding: utf-8 -*-
import time
from hashlib import sha384
from django.conf import settings
from django.core.cache import cache
from django.contrib.staticfiles.storage import ManifestStaticFilesStorage
try:
ACCURACY = settings.STATICFILES_HASH_ACCURACY
except AttributeError:
ACCURACY = 12
try:
KEY_PREFIX = settings.STATICFILES_HASH_KEY_PREFIX
except …Run Code Online (Sandbox Code Playgroud) 我models.py在两个不同的应用程序中有两个Django .
processor app models.py
from address.models import Address
...defining clasess
class Displayble(models.Model):
# It has no DB fields
Run Code Online (Sandbox Code Playgroud)
address app models.py
from processor.models import Displayable
class Address(models.Model, Displayble):
...some fields, stored in DB
Run Code Online (Sandbox Code Playgroud)
将Dispalyble类移动到另一个文件是解决此依赖关系的唯一选择吗?