Automatyczne wersjonowanie plików statycznych w Craft CMS

Static Files Autoversioning to plugin dla Craft CMS, który pomaga uniknąć problemów ze starym cache po wdrożeniu zmian w plikach CSS, JavaScript i innych zasobach statycznych.

Paweł Potacki prezentuje makietę panelu administracyjnego Craft CMS z otwartą wtyczką Static Files AutoVersioning. Grafika pokazuje schemat przepływu wersjonowania i zrzut ekranu panelu z unikalnymi hashami plików.

Problem

Cache przeglądarki i CDN poprawiają szybkość strony, ale podczas wdrożeń potrafią też powodować błędy. Użytkownik może otrzymać starszą wersję pliku CSS albo JavaScriptu, mimo że na serwerze znajduje się już nowy kod.

W prostszych projektach ręczne zmienianie parametrów w adresach plików jest niewygodne. Rozbudowany pipeline z bundlerem również nie zawsze ma sens. Potrzebowałem lekkiego rozwiązania działającego bez dokładania zbędnej warstwy narzędzi.

Rozwiązanie

Plugin dodaje do Twig funkcję version(). Jej zadaniem jest dopisanie wersji zasobu do adresu URL:

{{ version('/dist/css/main.css') }}

Wynik może wyglądać tak:

/dist/css/main.css?v=1717869800

Dostępne strategie wersjonowania:

  • mtime: wersja wynika z daty modyfikacji pliku na serwerze,
  • build.txt: wersja jest pobierana z pliku generowanego podczas wdrożenia,
  • Parametr środowiskowy: wersję można ustawić ręcznie w konfiguracji.

Gdzie plugin się sprawdza

Rozszerzenie współpracuje z Craft CMS 3, 4 i 5 oraz może być używane razem z Varnishem, Cloudflare i narzędziami do statycznego renderowania. Kod jest dostępny publicznie w repozytorium GitHub oraz w Craft Plugin Store.

To niewielkie narzędzie, ale rozwiązuje realny problem, który łatwo zauważyć dopiero po wdrożeniu zmian na produkcję.

🔗 Strona Craft Plugin Store | Repozytorium GitHub

Napisz kilka słów o projekcie

Zwykle odpowiadam w ciągu 24 godzin

Wtyczka w oficjalnym Craft CMS Plugin Store

Podgląd wtyczki jest zablokowany do czasu włączenia treści zewnętrznych.

magnifiercrosschevron-left