Files
GTI_GERENCIADOR_FISCAL/app/asset_versao.py
T

30 lines
1.1 KiB
Python

"""
Versão dos arquivos estáticos (CSS/JS) usada como cache-busting nos links
de app/templates/base.html (?v=...). Sem isso, um navegador que já tinha
carregado /static/estilo.css antes de um deploy pode continuar servindo a
cópia antiga em cache — a URL não muda, então não há sinal pro navegador
buscar de novo — mesmo numa aba anônima aberta antes do deploy terminar.
Calculada uma única vez, na inicialização do processo, a partir do mtime
mais recente entre os arquivos em app/static/. Cada novo deploy recria o
container com os arquivos atualizados (mtime novo), então o valor muda
sozinho a cada implantação, sem precisar editar nada aqui.
"""
import os
_DIR_STATIC = os.path.join(os.path.dirname(__file__), "static")
def _calcular_versao() -> str:
arquivos = [
os.path.join(_DIR_STATIC, nome)
for nome in os.listdir(_DIR_STATIC)
if os.path.isfile(os.path.join(_DIR_STATIC, nome))
]
if not arquivos:
return "0"
return str(int(max(os.path.getmtime(caminho) for caminho in arquivos)))
ASSET_VERSAO = _calcular_versao()