ブラウザにキャッシュが残るのでCSSを変更・更新しても変更がブラウザに反映されない。
以下に対処法をあげる。
1.スーパーリロードする
OSやブラウザによって操作は異なるようだが、スーパーリロードでググればでてくるので詳細は省略。
スーパーリロードすることによって強制的に更新する。
ただし、自分でやる分にはいいが顧客にやってもらうのは面倒である。
https://qiita.com/shati-taro/items/3946d3962071a26ebcb6
2.キャッシュバスティング
DjangoでCache Bustingの設定する
https://webty.jp/staffblog/production/post-1181/
2-1.クエリをつかう
手動でクエリを変更することもできるが面倒。django-static-md5urlを使う。
https://pypi.org/project/django-static-md5url/
$ pip install django-static-md5url
setting.py
INSTALLED_APPS = [
...
'django_static_md5url',
]
app/templates/base.html
<!-- base.html -->
{% load md5url %}
...
<link href="{% md5url 'css/style.css' %}" rel="stylesheet" type="text/css">
クエリが付与された状態で出力される。
app/templates/base.html
<link href="/static/css/base.css?v=e352ca3230fc" rel="stylesheet" type="text/css">
2-2.名前を変更する
setting.py
DEBUG = False
...
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
app/templates/base.html
<!-- base.html -->
{% load static %}
...
<link href="{% static 'css/style.css' %}" rel="stylesheet" type="text/css">
$ python manage.py collectstatic
ファイル名にハッシュが付与された状態で出力される。
app/templates/base.html
<link href="/static/css/base.e352ca3230fc.css" rel="stylesheet" type="text/css">
ただしハッシュごとにファイルが別れることになるので管理が面倒。