Наша команда-партнер Artmisto
Kompresja i optymalizacja CSS i JS w silniku CMS obsługiwanym jedną ręką
Nedіlya, 12 września 2018 r.
Pewnego dnia, jeśli będę miał trochę więcej czasu, podzielę się nim gdzieś, może na utilmind.com całe moje doświadczenie optymalizując i przyspieszając serwery internetowe.
Jestem tutaj FAVOR.com.ua samozapisowy silnik CMS. Oczywiście nie jest to zbyt popularne w Internecie, ale jestem pewien, że nie jest jedyny. Może to być przydatne dla kogoś. A nawet jeśli chcesz stworzyć swój własny lekki i szybki silnik ...
Aby zacząć gdzieś, opiszę konkretny plan działania:
- Konfigurując apache, nginx (który hartuje statykę i transmituje dynamikę apache), mysql, php, exim (nie dotyczy silnika, ale może wpływać na działanie serwera jako całości) i kilka innych małych rzeczy.
Szczególna uwaga, oczywiście Apache i Nginx. Usuwamy wszystkie niepotrzebne. Konfigurujemy kompresję gzip wszystkich statyki + pobieranie skompresowanej zawartości za pomocą gzip. - Funkcje PHP inline_script, add_script, add_scripts, dzięki którym wszystkie skrypty zostały zgrupowane w odpowiednich miejscach.
- Zbieraj paczki plików css / js razem w jeden „zminimalizowany” i skompresowany za pomocą gzip css / js. Automatyczne monitorowanie zmian w pofragmentowanych css i js, z czyszczeniem pamięci podręcznej przygotowanych zminimalizowanych i skompresowanych plików (przy użyciu inotifywait). Przechwytywanie prośby o brak skompresowanych css i js za pomocą haka na stronie 404 i tworzenie ich w locie (patrz zbieranie kilku plików css / js).
Zminimalizuj odpowiednio pliki CSS i JS javascript-minifier i cssminifier . (Plus, oczywiście, obowiązkowa maksymalna kompresja zminimalizowanego pliku za pomocą GZip). - Liryczna dygresja ... (przed rozdziałem o obrazach ...) Rozwijanie dobrego nawyku przechowywania obrazów SVG w dwóch wersjach. Zapisz oryginalne (normalnie czytelne) obrazy SVG w folderach przydzielonych do archiwum.
Ale do tworzenia bardzo skompresowanej treści dla zwykłych żądań pracy HTTP (na przykład skompresowanych za pomocą svgo lub nawet z Svgomg ). Przechowywanie publicznych plików SVG tylko w zminimalizowanej formie + skompresowane za pomocą gzip z maksymalną kompresją. Wciągająca dla faktu, że mamy wszystkie statyczne SVG (jak również XML, ICO, TXT i inne drobiazgi) są przechowywane do publicznego dostępu tylko w plikach .gz. - Automatyczna kompresja obrazu. SVG, JPEG, PNG. Przypuszczalnie podczas korzystania z pewnego magazynu z oryginalnymi plikami + tzw. pamięć podręczna z plikami publicznymi.
Aby rozpocząć kompresję, użyj tylko najprostszych i łatwo dostępnych narzędzi.
SVG: svgo + gzip
PNG: optipng
JPEG: jpegoptim
RSS (bonus): nie minimalizuj. Postanowiłem zachować te XML do odczytu dla ludzi. Ale na serwerze naciskamy gzip'om.
(Można zwrócić uwagę na konfigurację wszystkich tych narzędzi).
A także do szczegółowego opisania całej funkcjonalności modułu minifier.php. Funkcje automatycznego używania minifaktora javascript i cssminifier + kompresja grup plików gzip itp.) - Skonfiguruj i używaj CDN. Przykład shareware (przez rok) Google Cloud CDN.
, css , gzip , javascript , jpegoptim , js , nginx , optipng , rss , svg , svgo , kompresja , minimalizacja