首页 > 代码库 > 基于md5的解决js,css缓存问题for django
基于md5的解决js,css缓存问题for django
一.常见的解决方案
js,css更新的时候,由于浏览器的缓存机制,可能导致引用老的js,css而引起错误。以往常见的解决方法有两种:
1.对js,css加版本控制,例如:jquery.min.js?v=xx.xxx.xx
此种方法存在的问题是需要对版本控制进行维护,比较麻烦
2.对js,css加时间戳
此种方法存在的问题是当js或css,更改后又被还原,但是时间戳已经更改,而导致浏览器需要重新下载js,css。
二.md5解决js,css缓存问题的原理
根据js,css的内容生成一个字符串,当js,css发生改变的时候字符串也会随之更改。
三.md5的解决js,css缓存问题for django
使用CachedStaticFilesStorage中的配置方法来实现:https://docs.djangoproject.com/en/1.6/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.CachedStaticFilesStorage
1.在setting中设置
1).设置STATICFILES_STORAGE
STATICFILES_STORAGE = ‘django.contrib.staticfiles.storage.CachedStaticFilesStorage‘
2).设置cache,memcache or ridis(至少指定一个):
CACHES = { "default": { "BACKEND": "redis_cache.cache.RedisCache", "LOCATION": "127.0.0.1:6379:1", "OPTIONS": { "CLIENT_CLASS": "redis_cache.client.DefaultClient", } }}
3).设置debug=False
4).设置static_root
STATIC_ROOT = os.path.join(BASE_DIR, "static")
2.在前端页面中加入staticfiles标签
{% load static %} <link href=http://www.mamicode.com/"{% static ‘css/bootstrap.min.css‘ %}" rel="stylesheet">
3.执行python manage.py syncdb,在static中生成MD5文件:
4.执行结果
基于md5的解决js,css缓存问题for django
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。