You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1017 B
Python
34 lines
1017 B
Python
import functools
|
|
import os.path
|
|
|
|
from django import template
|
|
from django.conf import settings
|
|
from django.contrib.staticfiles import finders
|
|
from django.templatetags.static import static
|
|
|
|
register = template.Library()
|
|
|
|
|
|
@functools.lru_cache(maxsize=None)
|
|
def get_minified_static_path(path):
|
|
"""Retourne de préférence le chemin d'un fichier compressé.
|
|
|
|
Détermine et retourne le chemin relatif à utiliser pour le fichier
|
|
statique `path`, en fonction de l'environnement. Si elle existe, la
|
|
version compressée (e.g. avec le suffixe `.min` avant l'extension) du
|
|
fichier sera retournée quand le débogage est désactivé.
|
|
"""
|
|
if settings.DEBUG:
|
|
return path
|
|
root, ext = os.path.splitext(path)
|
|
min_path = '{}.min{}'.format(root, ext or '')
|
|
if finders.find(min_path):
|
|
return min_path
|
|
return path
|
|
|
|
|
|
@register.simple_tag
|
|
def minified(path):
|
|
"""Retourne le chemin absolu d'un fichier statique compressé."""
|
|
return static(get_minified_static_path(path))
|