Autor | Zpráva | ||
---|---|---|---|
Venca190 Profil * |
#1 · Zasláno: 30. 1. 2016, 15:49:57
Zdravím,
dělám na svém webu a bohužel jakmile provedu nějakou změnu jak v CSS nebo PHP apod tak trvá než se aktualizuje, můžu klikat klidně minutu na ctrl+F5 a nic se nestane, třeba až za 2-3 min se změna projeví. Někdy se stane, že změna se projeví hned. V prohlížeči jsem si zakázal cachování. I v indexu.php mám <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="-1"> .htaccess <IfModule mod_expires.c> ExpiresActive Off ExpiresDefault A600 ExpiresByType text/javascript A31536000 ExpiresByType application/javascript A31536000 ExpiresByType text/css A1209600 ExpiresByType image/gif A1209600 ExpiresByType image/png A1209600 ExpiresByType image/jpeg A1209600 ExpiresByType image/x-icon A1209600 ExpiresByType text/html A1 </IfModule> web mám hostovaný u forpsi, na jiných webech, které jsou u jiné společnosti, problém nemám, víte někdo co s tím? |
||
Str4wberry Profil |
#2 · Zasláno: 30. 1. 2016, 15:53:20
Rozumný postup bývá cacheování nebránit a načtení aktuálních souborů docílit změnou URL.
Třeba na této diskusi se to dělá přidáním parametru: <link href="./templates/djpw.css?v=2.2.6" type="text/css" rel="stylesheet"> |
||
Venca190 Profil * |
#3 · Zasláno: 30. 1. 2016, 15:58:46
Str4wberry:
Díky, takže jen za můj styl se přidá např. "?v=1.0" a nic jiného se neřeší? nemusí to být nidke definované a je to tak správné? |
||
Sitole Profil |
#4 · Zasláno: 30. 1. 2016, 16:25:01
Venca190:
Já jsem to dělal tak, že jsem si místo ?v=2.2.6 vypisoval například PHP time. Takže se každém novém otevření soubor načetl znovu. Aktuálně to mám vyřešené stejně jako tu a to přidáním verze systému. :)
|
||
Bubák Profil |
#5 · Zasláno: 30. 1. 2016, 17:57:45
Sitole:
„Aktuálně to mám vyřešené stejně jako tu a to přidáním verze systému.“ Ale ty stahuješ "novou verzi" i tehdy, pokud to není potřeba, kdežto v případě Str4wberryho rady se soubor aktualizuje jen tehdy jen tehdy, pokud je to ručně vynuceno změnou čísla verze souboru. |
||
Venca190 Profil * |
#6 · Zasláno: 30. 1. 2016, 18:19:32
Takže pokud to chápu dobře. tak vždy, když změním verzi, měla by se mi aktualizace provést hned(když vygeneruju náhodný číslo rand(), tak pokaždé co dám F5 se načte znovu styly). Jak se to, ale řeší se souborama? Např. když potřebuju měnit nějakou php funkci apod.
|
||
Sitole Profil |
#7 · Zasláno: 30. 1. 2016, 18:35:29
Bubák:
Myslel jsem to tak, že když jsem stránky dělal tak jsem potřeboval okamžitou reakci, ale stránku jsem musel 2-3x načíst, aby se opět načetl soubor s CSS. Tak jsem to vyřešil pomocí toho time. Aktuálně je za ?v= verze administračního systému.
|
||
Str4wberry Profil |
#8 · Zasláno: 30. 1. 2016, 22:47:17
Vynutit nové stažení nemusí být vždycky nutné. Nejedná-li se o opravu nějaké chyby nebo s novým stylem nepočítá HTML kód, nic moc se nestane, když se některým návštěvníkům zobrazí stará podoba.
Jinak pro testování je spíš lepší zakázat cache než se snažit o změny URL. Jde to ve vývojářských nástrojích: Další možnost je využít načtení bez obnovení zkratkou Ctrl + Shift + R . To funguje ve Firefoxu a Chrome.
|
||
Chamurappi Profil |
Reaguji na Bubáka:
„kdežto v případě Str4wberryho rady se soubor aktualizuje jen tehdy, pokud je to ručně vynuceno změnou čísla verze souboru“ Ono je to spíš jakési číslo verze DJPW. Tuším, že se tu používá jen na třech místech – v adrese CSS, v adrese JS a viditelně v patičce stránky. Takže to není jen číslo verze souboru, je to vlastně číslo dvou souborů, jehož setinkovou část uměle navyšujeme jen proto, abychom přebili keš, pokud je to nutné. Reaguji na Str4wberryho: Nefunguje všude (ve Windows, možná mimo Operu) už desítky let Ctrl + F5 ? Myslím, že to je mnohem známější zkratka. Slyšel jsem lidi říkat „dej si Ctrl + F5 “ i u dotykového telefonu :-)
Teď koukám, že vlastně Venca190 o téhle zkratce mluví v úvodním příspěvku. Tak nic :-) |
||
Str4wberry Profil |
Tu zkratku
Ctrl + Shift + R zmiňuje třeba Chrome při podržení obnovovacího tlačítka s otevřenými vývojářskými nástroji:
U Ctrl + F5 je vtipná situace ve staré Opeře 12, kde tato zkratka refreshne všechny otevřené stránky. :–)
|
||
Tomáš123 Profil |
#11 · Zasláno: 1. 2. 2016, 18:20:33
Str4wberry:
„Třeba na této diskusi se to dělá přidáním parametru:“ Chápem správne, že ten parameter nijak neprepína verzie, nikde sa nevyhodnocuje a jeho jedinou úlohou je iba pozmeniť URL? |
||
anonymníí Profil * |
#12 · Zasláno: 1. 2. 2016, 18:48:26
Tomáš123:
99 %* všech parametrů u JS/CSS/obrázkových souborů napříč internetem nemá žádný jiný důvod, než jen vynutit aktualizaci cache. A je jedno, jestli je označen verzí, timestampem v době nasazení, nebo náhodným spletencem. U DJPW to bude téměř jistě stejně, žádný speciální význam ten parametr mít nebude. *hm, 99 %... nazvěme to spíše mnoho, to bude přesnější :-) |
||
Str4wberry Profil |
#13 · Zasláno: 2. 2. 2016, 11:18:07
Je to tak. Některé weby mění přímo název souboru (dřív byla docela rozšířená taková teorie, že některé proxy servery mohou mít problém s kešováním dynamických URL), ale to může být náročnější na implementaci.
Při přidávání parametru stačí někde přepsat proměnnou/konstantu s versí, která se vypisuje za připojením CSS/JS: <link href="./templates/djpw.css?v={$GLOBALS['version']}" type="text/css" rel="stylesheet"> … <script src="./templates/djpw.js?v={$GLOBALS['version']}" charset="utf-8" type="text/javascript"></script> |
||
Časová prodleva: 9 let
|
0