[PHP]CSP i cachowanie CSS, Stary naleśnik odgrzewany |
[PHP]CSP i cachowanie CSS, Stary naleśnik odgrzewany |
16.04.2022, 20:52:59
Post
#1
|
|
Grupa: Zarejestrowani Postów: 650 Pomógł: 16 Dołączył: 5.07.2010 Skąd: Ściśle Tajne Ostrzeżenie: (0%) |
Witam, próbuję zrobić standardowo system zarządzania, który wszystkie problemy związane z SEO oraz optymalizacją będzie miał rozwiązane. Czyli wchodzi użytkownik, tworzy stronę, a system sam rozwiązuje jego problemy przez co użytkownik jest zwolniony z odpowiedzialności za wszelkie błędy. Chcę wprowadzić między innymi funkcję, która będzie automatycznie includowany javascript dodawać do footera, jeżeli ktoś stworzy szablon w którym javascript jest w headerze. Chcę aby strona osiągała najwyższe wyniki w Google Speed Page oraz w Light House (funkcja w google chrome po wciśnięciu CTRL+Shift+I). Mam problem z cachowaniem CSS oraz z CSP. O ile kiedyś rozwiązałem problem z pierwszym, a teraz mi się nie udaje to o tym drugim pierwszy raz słyszę. Używam hostingu na domena (kropka) pl i wydaję mi się że używają protokołu http w wersji 1.0 bo htaccess nie pozwala na cachowanie CSS. Błąd się nie poprawia. Mam certyfikat SSL i nie ma tam opcji włączenia http2. Ogólnie to chyba pozostaje zmienić hosting.
-------------------- Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście |
|
|
16.04.2022, 23:50:41
Post
#2
|
|
Grupa: Zarejestrowani Postów: 859 Pomógł: 177 Dołączył: 29.10.2009 Ostrzeżenie: (0%) |
Użyj cloudflare
|
|
|
16.04.2022, 23:53:31
Post
#3
|
|
Grupa: Zarejestrowani Postów: 650 Pomógł: 16 Dołączył: 5.07.2010 Skąd: Ściśle Tajne Ostrzeżenie: (0%) |
jest to opcja, ale raczej nie pomaga to w pozycjonowaniu
-------------------- Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście |
|
|
19.04.2022, 18:12:28
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) |
Mam problem z cachowaniem CSS oraz z CSP. O ile kiedyś rozwiązałem problem z pierwszym, a teraz mi się nie udaje to o tym drugim pierwszy raz słyszę. Możesz nakreślić jaki ma związek CSP z cachowaniem CSS? Używam hostingu na domena (kropka) pl i wydaję mi się że używają protokołu http w wersji 1.0 bo htaccess nie pozwala na cachowanie CSS. Błąd się nie poprawia. Cache CSS nie ma związku z protokołem HTTP (no i raczej jest to HTTP/1.1). Może masz zablokowane niektóre dyrektywy jakich możesz użyć w swoim htaccess. A jaki błąd się pojawia? Mam certyfikat SSL i nie ma tam opcji włączenia http2. Ogólnie to chyba pozostaje zmienić hosting. Samo posiadanie certyfikatu nie daje z automatu http2, ale jest wymagane. Http2 trzeba włączyć w serwerze www i w danym vhoście (o ile nie zostanie ustawione domyślnie dla wszystkich). Jeśli na hostingu tego nie masz, nie możesz włączyć w panelu i po kontakcie z supportem też nie - to tak, najwyższy czas się przenieść do kogoś, kto ogarnia. -------------------- |
|
|
19.04.2022, 20:28:35
Post
#5
|
|
Grupa: Zarejestrowani Postów: 650 Pomógł: 16 Dołączył: 5.07.2010 Skąd: Ściśle Tajne Ostrzeżenie: (0%) |
Ja pytałem się o dwie rzeczy na raz. Może inaczej skonstruuje pytanie, mianowicie nie mam pojęcia jak zrobić dachowanie CSS przez co mi tego nie robi. Mógłby ktoś podesłać jakąś instrukcję?
-------------------- Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście |
|
|
20.04.2022, 20:20:02
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) |
To tak, żeby cache miał sens, to nazwa zasobu musi być unikalna (w nazwie pliku hash z zawartości). Wtedy można cache ustawić na bardzo długi czas i jeśli zmieni się zawartość, hash się przeliczy i będzie nowy link.
Czyli de facto musisz tu mieć jakiś builder wpleciony. Krok po kroku to wygląda tak: 1. Budujesz całą stronę (html, js, css). 2. Dla assetów (js, css) wyliczasz ich hashe z zawartości pliku. 3. Zmieniasz nazwę (np z main.css, main.js na odpowiedniki z hashem w nazwie => main-a0a9af.css main-8a98asdf.js). 4. We wszystkich plikach HTML podmieniasz linki z main.css na main-a0a9af.css i main.js na main-8a98asdf.js Cache plików HTML pownien być krótki, tak aby przeglądarka dość często pobierała samą stronę, natomiast assety można w takim przypadku wrzucać do cache nawet np na rok, albo w sumie też do nieskończoności ;-) Jeśli nastąpią zmiany w treści, wygeneruje się nowy hash, nowa nazwa pliku => przeglądarka pobierze nowe pliki. CDN może serwować nagłówki z serwera źródła. Cache na poziomie serwera www można zrobić na kilka sposobów, w zależności od wersji, dostępnych modułów. Przykłady dla Apache:
-------------------- |
|
|
22.04.2022, 13:16:02
Post
#7
|
|
Grupa: Zarejestrowani Postów: 650 Pomógł: 16 Dołączył: 5.07.2010 Skąd: Ściśle Tajne Ostrzeżenie: (0%) |
Pomyślałem o generowaniu przez PHP plików CSS z hashowanym rozmiarem pliku tylko nie wiem jak optymalnie można byłoby to zrobić
-------------------- Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście |
|
|
22.04.2022, 21:00:56
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) |
Rozmiar to nie jest dobry wyznacznik. Możesz dodać 100 znaków i 100 innych usunąć i rozmiar zostanie ten sam, a zawartość się będzie różnić. Hash z zawartości jest najpewniejszy.
-------------------- |
|
|
23.04.2022, 10:32:15
Post
#9
|
|
Grupa: Zarejestrowani Postów: 650 Pomógł: 16 Dołączył: 5.07.2010 Skąd: Ściśle Tajne Ostrzeżenie: (0%) |
Hash całej zawartości? I pytanie, generować nowe pliki CSS przez PHP czy da się to zrobić na poziomie revite rule w htaccess
-------------------- Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście |
|
|
24.04.2022, 14:08:35
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) |
Zwykle CSSy się buduje z jakiś SASS/SCS, buildery oparte są o JS, mają zwykle taki ficzer wbudowany albo łatwy do dołączenia.
Jeśli nie korzystasz z czegoś takiego, to tak czy inaczej w PHP jest to łatwe do osiągnięcia, bo przecież są gotowe funkcje jak https://www.php.net/manual/en/function.hash-file.php czy też https://www.php.net/manual/en/function.sha1-file.php Cytat I pytanie, generować nowe pliki CSS przez PHP czy da się to zrobić na poziomie revite rule w htaccess Generalnie to odwrotnie - masz zmienione pliki CSS, zmieniasz ich nazwę i podmieniasz ją w plikach HTML. -------------------- |
|
|
24.04.2022, 17:22:32
Post
#11
|
|
Grupa: Zarejestrowani Postów: 650 Pomógł: 16 Dołączył: 5.07.2010 Skąd: Ściśle Tajne Ostrzeżenie: (0%) |
a jakbym nie zmieniał nazwy plików tylko dodawał do nazwy css hash - przykład: nazwa.css?v=hash to nie będzie to w taki sam sposób działać ?
-------------------- Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście |
|
|
24.04.2022, 18:22:10
Post
#12
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 5 Dołączył: 11.02.2011 Ostrzeżenie: (0%) |
|
|
|
24.04.2022, 19:17:21
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) |
a jakbym nie zmieniał nazwy plików tylko dodawał do nazwy css hash - przykład: nazwa.css?v=hash to nie będzie to w taki sam sposób działać ? Będzie. -------------------- |
|
|
11.05.2022, 15:27:34
Post
#14
|
|
Grupa: Zarejestrowani Postów: 650 Pomógł: 16 Dołączył: 5.07.2010 Skąd: Ściśle Tajne Ostrzeżenie: (0%) |
To tak, żeby cache miał sens, to nazwa zasobu musi być unikalna (w nazwie pliku hash z zawartości). Wtedy można cache ustawić na bardzo długi czas i jeśli zmieni się zawartość, hash się przeliczy i będzie nowy link. Czyli de facto musisz tu mieć jakiś builder wpleciony. Krok po kroku to wygląda tak: 1. Budujesz całą stronę (html, js, css). 2. Dla assetów (js, css) wyliczasz ich hashe z zawartości pliku. 3. Zmieniasz nazwę (np z main.css, main.js na odpowiedniki z hashem w nazwie => main-a0a9af.css main-8a98asdf.js). 4. We wszystkich plikach HTML podmieniasz linki z main.css na main-a0a9af.css i main.js na main-8a98asdf.js Cache plików HTML pownien być krótki, tak aby przeglądarka dość często pobierała samą stronę, natomiast assety można w takim przypadku wrzucać do cache nawet np na rok, albo w sumie też do nieskończoności ;-) Jeśli nastąpią zmiany w treści, wygeneruje się nowy hash, nowa nazwa pliku => przeglądarka pobierze nowe pliki. CDN może serwować nagłówki z serwera źródła. Cache na poziomie serwera www można zrobić na kilka sposobów, w zależności od wersji, dostępnych modułów. Przykłady dla Apache:
Ten Twój kod działa za dobrze... chciałbym wyłączyć z cachowania katalog admin. Powiesz mi jak to zrobić ? -------------------- Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 09:43 |