Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odświeżanie plików css/js
ujex
post 29.09.2010, 08:33:20
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 4.11.2006

Ostrzeżenie: (0%)
-----


Sprawa wygląda tak:
w domenie głównej mam sobie stronę, pliki css i js trzymam na innym serwerze i w innej subdomenie.
Teraz jak coś zmieniam w plikach css to na stronce plik się nie odświeża do czasu aż wcisnę ctrl+f5, tak jakby przeglądarka nie wiedziała, że plik się zmienił....
Jak mam to zrobić, żeby ludziom ładowały się nowe style po każdej mojej zmianie w plikach?
Dodam jeszcze, że pliki css i js trzymam w tej subdomenie statycznie, nie są generowane przez żadne skrypty.
Go to the top of the page
+Quote Post
erix
post 29.09.2010, 10:15:18
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Dodam jeszcze, że pliki css i js trzymam w tej subdomenie statycznie, nie są generowane przez żadne skrypty.

Dopisuj losowy ciąg znaków w query string.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Nh2003
post 29.09.2010, 10:38:19
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 14
Dołączył: 3.10.2007

Ostrzeżenie: (0%)
-----


Losowy ciąg znaków to złe rozwiązanie - za każdym razem przeglądarka będzie na nowo wczytywać plik css. Dużo lepszym rozwiązaniem jest dopisywanie czasu modyfikacji pliku. No chyba że mówisz o ręcznym wpisywaniu losowej wartości po każdej edycji pliku css.
Go to the top of the page
+Quote Post
ujex
post 29.09.2010, 10:43:03
Post #4





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 4.11.2006

Ostrzeżenie: (0%)
-----


Zmiana nazwy pliku nie wchodzi raczej w grę, tak naprawdę to kilka serwisów korzysta z tych styli.....
Musiałbym to w wielu miejscach zmieniać, tak robię właśnie teraz ale jest to kłopotliwe i dlatego szukam innego rozwiązania.
Go to the top of the page
+Quote Post
devnul
post 29.09.2010, 11:39:31
Post #5





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


@ujex: nikt tu nie mówi o zmianie nazwy pliku, jak masz plik który nazywa się np style.css to zamiast sładni
  1. <link rel="stylesheet" href="style.css" type="text/css" />

używasz np takiej
  1. <link rel="stylesheet" href="style.css?12345678" type="text/css" />

gdzie 12345678 to aktualny timestamp dla daty modyfikacji pliku możesz go uzysjać przez funkcję filemtime dzięki temu przeglądarka automatycnzie pobierze nową wersję styli/skryptu po zmianie bo przez nią taki plik będzie uznany za nowy

Ten post edytował devnul 29.09.2010, 11:39:49


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
ujex
post 29.09.2010, 11:41:54
Post #6





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 4.11.2006

Ostrzeżenie: (0%)
-----


Wiem o co wam chodzi, może ja się nie jasno wypowiadam...
Twoje rozwiązanie jest złe, ba jak już kolega wcześniej zauważył.....
Cytat
Losowy ciąg znaków to złe rozwiązanie - za każdym razem przeglądarka będzie na nowo wczytywać plik css.

a mi chodzi tylko o to, żeby pobierała plik w momencie kiedy ja w nim wykonam zmianę....

Ten post edytował ujex 29.09.2010, 11:42:46
Go to the top of the page
+Quote Post
devnul
post 29.09.2010, 11:44:28
Post #7





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


Cytat
a mi chodzi tylko o to, żeby pobierała plik w momencie kiedy ja w nim wykonam zmianę....
przeczytaj mojego posta oczko wyżej, jak chwilę pomyślisz to zobaczysz że to rozwiązanie będzie działało dokładnie tak jak chcesz


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
ujex
post 29.09.2010, 11:53:18
Post #8





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 4.11.2006

Ostrzeżenie: (0%)
-----


Cytat z mojego pierwszego posta:
Cytat
w domenie głównej mam sobie stronę, pliki css i js trzymam na innym serwerze i w innej subdomenie.
Go to the top of the page
+Quote Post
devnul
post 29.09.2010, 11:56:53
Post #9





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


cache control i etag


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
sniver
post 29.09.2010, 12:30:32
Post #10





Grupa: Zarejestrowani
Postów: 159
Pomógł: 5
Dołączył: 31.08.2007

Ostrzeżenie: (0%)
-----


ja zawsze dopisuje do pliku np. style.css parametr reload=1

czyli style.css?reload=1
i jak pozmieniam to ręcznie zmieniam na kolejną liczbę biggrin.gif


--------------------
Go to the top of the page
+Quote Post
krowal
post 5.10.2010, 12:23:40
Post #11





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


Najlepiej chyba dopisać z automatu datę modyfikacji tego pliku w formacie unixowym. style.css?1234123

Po każdej modyfikacji się zmienia i nic nie trzeba ręcznie robić bo przecież można tą datę wyciągnąć z pliku za pomocą PHP smile.gif


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
devnul
post 5.10.2010, 12:25:09
Post #12





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


@krowal: 6 postów wyżej...


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
konrados
post 19.10.2010, 12:10:08
Post #13





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Dołączę się, bo mam podobny problem, a wygląda na to, że nie zrozumieliście smile.gif

Cytat
pliki css i js trzymam na innym serwerze i w innej subdomenie.

Zmiana nazwy pliku nie wchodzi raczej w grę, tak naprawdę to kilka serwisów korzysta z tych styli


Nie da się przecież pobrać daty modyfik. pliku, który znajduje się w innej domenie.

A jako, że dany plik css/js jest używany przez np. 100 innych stron, to też modyfikacja losowej wartości na tych stronach (za każdym razem, gdy zmienimy dany plik js/css) nie wchodzi w rachubę.

Przydałby się więc jakś odpowiedni string w funkcji php header() który mówi: data modyfikacji jest taka a siaka, ściągnij ten plik, jeśli jest nowsza niż w cachu.

Swego czasu dużo czytałem o tym i prostego rozwiązania nie znalazłem, co mi się wydaje dość dziwne. Pewnie źle szukałem.

Ten post edytował konrados 19.10.2010, 12:11:32
Go to the top of the page
+Quote Post
devnul
post 19.10.2010, 12:12:19
Post #14





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


powtórzę się bo widzę że nie czytacie ze zrozumieniem


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
erix
post 19.10.2010, 12:15:38
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Nie da się przecież pobrać daty modyfik. pliku, który znajduje się w innej domenie.

Ekhm, a get_headers, to co?

Cytat
Przydałby się więc jakś odpowiedni string w funkcji php header() który mówi: data modyfikacji jest taka a siaka, ściągnij ten plik, jeśli jest nowsza niż w cachu.

manual dla get_headers nawet:
Cytat
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
devnul
post 19.10.2010, 12:33:34
Post #16





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


@erix: w sensie stricte że rozwiązanie jest się jak najbardziej zgadzam ale uważam że nie jest to najszczęśliwsze wykorzystanie - każdorazowe odpytanie zdalnego serwera o nagłówki jednego lub więcej plików może dać spory narzut czasowy, dlatego też uważam że dobrze zbudowane nagłówki po stronie zdalnego serwera w zupełności wystarczą


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
konrados
post 19.10.2010, 13:44:11
Post #17





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


@devnul

Ja rozumiem, i nawet używam, o takie coś robię:

  1. $headerLastMod = gmdate("F d Y H:i:s T", getlastmod());
  2. header("Last-Modified: $headerLastMod");
;

Niestety gdy używam firebuga by pokazać co się dzieje (w zakładce sieć) to okazuje się, że czasem ściąga czasem nie (!). By być pewnym, że format jest prawidłowy etc robię nawet dla testów ręcznie:

  1. header ("Last-Modified: Mon, 15 Feb 2010 23:30:12 GMT");


Wynik ten sam. Próbowałem też z "Date:" i "Expires:". Wynik ten sam - raz sobie ff ściągnie raz nie.
Go to the top of the page
+Quote Post
devnul
post 19.10.2010, 13:48:38
Post #18





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


temat jest obszerny ale jakbyś przegooglał się przez podstawowe pojęcia to dotarłbyś do tego - dalej już z górki. Poza tym możesz dobrze skonfigurować apacha i zrobi wszystko sam - doda odpowiednie nagłówki, ustawi czas modyfikacji i wygaśnięcia, skompresuje itp ale ograniczenie się do przekopiowania bez myślenie przykładów znalezionych w necie jest raczej kiepskim pomysłem tym bardziej jeśli bierzemy pierwszy wypluty przez google przykład


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
konrados
post 19.10.2010, 17:29:57
Post #19





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Dzięki, spojrzę.

Właśnie jak ostatnio interesowałem się tym tematem, to też skończyłem na jakiejś stronie, która po wydrukowaniu byłaby grubsza niż encyclopedia britannica smile.gif Dlatego jakoś tak zrezygnowałem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 1.07.2025 - 02:18