"""
El almacenamiento de los estáticos en producción.

Lo que compila Vite (`dist/`) ya lleva el hash del contenido en el nombre, y
sus trozos se importan entre sí por ese nombre: cada página hace
`import … from "./app-CXo_ahuX.js"`. Si `collectstatic` les suma su propio
hash, la plantilla carga `app-CXo_ahuX.<hash>.js` y las páginas importan
`app-CXo_ahuX.js`: para el navegador son dos módulos distintos y la aplicación
arranca dos veces. La segunda copia nace sin las rutas publicadas, así que la
página que la usa revienta en el primer `route()` («Route … did not arrive from
the server»), y la carga inicial tarda el doble.

Por eso los archivos de Vite se publican con su nombre tal cual; el resto sigue
con el hash de `collectstatic`.
"""

from whitenoise.storage import CompressedManifestStaticFilesStorage

#: Donde deja Vite lo que compila, relativo a `STATIC_ROOT` (`DJANGO_VITE`
#: `static_url_prefix`).
VITE_PREFIX = 'dist/'


class StaticStorage(CompressedManifestStaticFilesStorage):
    def stored_name(self, name):
        if name.startswith(VITE_PREFIX):
            return name
        return super().stored_name(name)
