zoukankan      html  css  js  c++  java
  • 基于md5的解决js,css缓存问题for django

    一.常见的解决方案

    js,css更新的时候,由于浏览器的缓存机制,可能导致引用老的js,css而引起错误。以往常见的解决方法有两种:

    1.对js,css加版本控制,例如:jquery.min.js?v=xx.xxx.xx

    此种方法存在的问题是需要对版本控制进行维护,比较麻烦

    2.对js,css加时间戳

    此种方法存在的问题是当jscss,更改后又被还原,但是时间戳已经更改,而导致浏览器需要重新下载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="{% static  'css/bootstrap.min.css' %}" rel="stylesheet">

    3.执行python manage.py syncdb,在static中生成MD5文件:

    4.执行结果

  • 相关阅读:
    这是我
    团队项目:Recycle
    四则运算生成器
    vim记录
    常用逻辑门及其符号
    shell记录
    用Gvim建立IDE编程环境 (Windows篇)
    vim基本操作
    vim后台运行程序
    快速提高 Vi/Vim 使用效率的原则与途径
  • 原文地址:https://www.cnblogs.com/smallc/p/4019642.html
Copyright © 2011-2022 走看看