Project

General

Profile

Revision a0b5aab0

IDa0b5aab08febae57c8f67c7eb01af4111e108998
Parent de7d5c68
Child 4e7f81f8

Added by Francois POIROTTE over 9 years ago

[#1286] Politique de cache plus aggressive

Ajoute une option (cache_max_age) dans les IHM web afin de suggérer de
manière plus aggressive aux navigateurs de mettre en cache les fichiers
statiques, afin d'accélérer le (re)chargement des pages.

NB: cette option n'a d'intérêt que si le client ne dispose d'aucune
surcharge pour les fichiers statiques ou si ces surcharges évoluent peu.
De plus, il s'agit d'une indication; le navigateur peut choisir de
l'ignorer complètement (par exemple, si l'utilisateur a explicitement
demandé que les contenus ne soient jamais mis en cache).

Change-Id: I3f2c2b15fd4cb05e9ca5732ff237233a667c3962
Refs: #1286.
Reviewed-on: https://vigilo-dev.si.c-s.fr/review/1495
Tested-by: Build system <>
Reviewed-by: Thomas BURGUIERE <>

View differences:

deployment/settings.ini.in
195 195
; Par défaut : -1 (Désactivé)
196 196
freshness_threshold = -1
197 197

  
198
; Durée maximale en secondes de conservation en cache
199
; des fichiers statiques (CSS, JavaScript, images, etc.).
200
; La valeur 0 permet de désactiver complètement la mise en cache.
201
; Notes :
202
; * Cette valeur fournit une indication sur la gestion du cache
203
;   aux navigateurs, mais ils sont libres de l'ignorer.
204
; * Si vous utilisez des fichiers statiques personnalisés,
205
;   une valeur trop élevée ralentira leur prise en compte.
206
;cache_max_age = 0
207

  
198 208
;
199 209
; 4 - Configuration du proxy Nagios.
200 210
;
development.ini
70 70
; versions de Vigilo antérieures à la version 3.6.
71 71
default_sort = ack:asc problem:asc priority:asc details:desc date:desc
72 72

  
73
cache_max_age=0
74

  
73 75
; Caractère de séparation des champs dans
74 76
; l'export CSV.
75 77
csv_delimiter_char = ;
vigiboard/config/middleware.py
54 54
    """
55 55
    app = make_base_app(global_conf, full_stack=full_stack, **app_conf)
56 56

  
57
    max_age = app_conf.get("cache_max_age")
58
    try:
59
        max_age = int(max_age)
60
    except (ValueError, TypeError):
61
        max_age = None
62

  
57 63
    # Personalisation des fichiers statiques via /etc/vigilo/vigiboard/public/.
58
    custom_static = StaticURLParser('/etc/vigilo/vigiboard/public/')
64
    custom_static = StaticURLParser('/etc/vigilo/vigiboard/public/',
65
                                    cache_max_age=max_age)
59 66

  
60 67
    # On définit 2 middlewares pour fichiers statiques qui cherchent
61 68
    # les fichiers dans le thème actuellement chargé.
62 69
    # Le premier va les chercher dans le dossier des fichiers spécifiques
63 70
    # à l'application, le second cherche dans les fichiers communs.
64
    app_static = StaticURLParser(resource_filename(
65
        'vigilo.themes.public', 'vigiboard'))
66
    common_static = StaticURLParser(resource_filename(
67
        'vigilo.themes.public', 'common'))
68
    local_static = StaticURLParser(resource_filename(
69
        'vigiboard', 'public'))
71
    app_static = StaticURLParser(
72
        resource_filename('vigilo.themes.public', 'vigiboard'),
73
        cache_max_age=max_age)
74
    common_static = StaticURLParser(
75
        resource_filename('vigilo.themes.public', 'common'),
76
        cache_max_age=max_age)
77
    local_static = StaticURLParser(
78
        resource_filename('vigiboard', 'public'),
79
        cache_max_age=max_age)
70 80
    app = Cascade([custom_static, app_static, common_static, local_static, app])
71 81
    return app

Also available in: Unified diff