Django won't refresh staticfiles
Clearing static file
python manage.py collectstatic --noinput --clear
. This will clear the statics beforehand.Clear the browser cache
Add a random string after the js file include, e.g jquery.js?rand=23423423, with each load.
Did it help?
It sounds like both your browsers have the javascript file cached. In Chrome you can clear the cache by pressing Ctrl
+ Shift
+ Del
and ticking just 'Cached images and files'. Firefox probably has a similar shortcut.
You can take a look at this question on tips to disable caching of static files on your development server altogether.
You need to bust the browser cache. This template tag will output a time based uuid when DEBUG=True
. Otherwise it will look for a PROJECT_VERSION
environment variable. If that is not found it will output a static version number.
import os
import uuid
from django import template
from django.conf import settings
register = template.Library()
@register.simple_tag(name='cache_bust')
def cache_bust():
if settings.DEBUG:
version = uuid.uuid1()
else:
version = os.environ.get('PROJECT_VERSION')
if version is None:
version = '1'
return '__v__={version}'.format(version=version)
You would use in a template like this:
{% load cache_bust %}
<link rel="stylesheet" href="{% static "css/project.css" %}?{% cache_bust %}"/>
and here is the resulting output:
<link rel="stylesheet" href="/static/css/project.css?__v__=7d88de4e-7258-11e7-95a7-0242ac130005"/>