Autor | Zpráva | ||
---|---|---|---|
niCe Profil |
#1 · Zasláno: 17. 8. 2007, 23:08:36
Ahoj, popravdě řečeno, nevím jestli to píšu správně do sekce "PHP", ale pravděpodobně bude řešení mého problémmu spjato s htaccess...
Na mých stránkách mám pomocí mod_rewrite "adresářovou strukturu", tzn. www.example.com/neco/stranka/, ale evidentně, kvuli tomu, že to prohlížeč bere jako složky, se necachuje ani css ani obrázky. Potřeboval bych poradit, jak nařídit cache pro celou doménu, případně jak dát klientovi najevo, aby načetl css a obrázky jednou, a podruhé už je bral z cache. Předem děkuji za odpovědi, niCe |
||
Str4wberry Profil |
#2 · Zasláno: 17. 8. 2007, 23:37:57
niCe
Nemohl by pomoci tento návod: [url]http://www.jakpsatweb.cz/clanky/caching-tutorial-czech-translatio n.html[/url]? |
||
niCe Profil |
#3 · Zasláno: 17. 8. 2007, 23:40:12
Str4wberry
Díky, ten článek jsem četl a vůbec mi nepomohl. Spíš bych potřeboval radu od někoho zkušeného, kdo by mi dokázal vysvětlit, jak udělat cache css, potažmo obrázků, pro celou doménu. Teď jsem se díval do tempu, a vypadá to, že z mé stránky se necachuje absolutně nic (MSIE6). |
||
niCe Profil |
#4 · Zasláno: 18. 8. 2007, 00:26:53
Tak změna: Abych byl konkrétní - http://vivamusic.org/ - Pokud se po stránkách pohybujete ve FF, grafika (hlavně css obrázky) se již znova nenačítá. Ale v IE (mám IE6) se na každé stránce znovu a znovu načítají všechny obrázky - je to přes 60 objektů, takže proto mi to vadí. A mám podezření, že IE znovunačítá i celý externí css.
Nevíte někdo co s tím? Nebo se mám smířit s tím, že IE6 jiný nebude? :) Díky, niCe |
||
dracek Profil |
#5 · Zasláno: 18. 8. 2007, 00:58:14
Asi je jediná možnost dát do hlavičky toho css header o cachování. (Expires...). A totéž i obrázkům.
Nebo odfiltrovat IE. Ale toty asi nechceš.... if (isIE()) { Header("location: http://hell.to/whereTheIEisGoing.php"); } |
||
Leo Profil |
#6 · Zasláno: 18. 8. 2007, 10:55:16
"Teď jsem se díval do tempu, a vypadá to, že z mé stránky se necachuje absolutně nic (MSIE6)."
Lepsi je podivat se spis na http komunikaci prohlizece a serveru. Nejaky konkretnejsi pripad obrazku, ktere se nekesuji/kesuji? Jsou jich tam opravdu mraky. Jinak kesovani se da nastavit pro cely web (adresar, urcite typy obrazku) pres .htacess a/nebo napriklad mod_expires. Leo |
||
niCe Profil |
#7 · Zasláno: 18. 8. 2007, 15:35:58
dracek
Díky, tak by to nejspíše šlo, ale právě tomuhle bych se chtěl nejradši vyhnout. Leo Beru to tak, že obrázky z jiného umístění, které na svých stránkách mam, se do toho tempu uloží. Ale po css nebo obrázcích z mé domény ani fň. Takže netuším, kde je problém. Vypadá to, že je cachování úplně zakázané, ale já to nikde nezakázal, a měl jsem za to, že by se to mělo cachovat automatiky... Zkusim najít něco o tom htaccess a cachování pro celou doménu. Díky niCe |
||
niCe Profil |
#8 · Zasláno: 18. 8. 2007, 16:49:51
Leo
Mod_expires evidentně nefunguje, možná není na serveru povolenej. Jak přesně jsi, prosím, myslel to nastavení cachování pro celý web (adresář atd.)? Taky přes mod_expires? Abych byl upřímnej, zaráží mi to čím dál tím víc. IE6 absolutně odmítá cachování! Nechápu to, ale 60 objektů, který se načítají dokola znovu, je otravný. Zkoušel jsem najít cokoliv, ale všechny články jsou jen o tom, jak cachování zakázat. To tenhle problém nikdo neřešil? Neříkejte mi, že je vám jedno, když se na každé stránce znovunačítá veškerá grafika, příp. celé css s grafikou. niCe |
||
dracek Profil |
#9 · Zasláno: 18. 8. 2007, 17:54:53
niCe
Mě osobně by to bylo jedno, pokud by to nečinilo příliš veliký traffic. |
||
krteczek Profil |
#10 · Zasláno: 18. 8. 2007, 22:47:32
jednou z možnosti je posilat obrazky pres nejaky skript: misto obrazek.jpg dat obrazek.php?name=nazev-obrazku a pri tom generovet hlavicky pro kešování v php (muže to být docela záhul na server, ale když jen obrázek načteš opatříš hlavičkama o pošleš tak si to budou pamatovat.
a to same by mohlo jít i s css souborem: misto styl.css tak styl.php a načíst css soubor, opatřit hlavičkami a odeslat |
||
Leo Profil |
#11 · Zasláno: 18. 8. 2007, 22:53:53
"Mod_expires evidentně nefunguje, možná není na serveru povolenej."
Tak to zkuste zjistit, pripadne si to vynutit a/nebo zmenit webhosting. Mimochodem, IE muze mit kesovani treba zakazany, zalezi na nastveni uzivatele, to ma vzdycky prednost. Uz jste se dival na ty http hlavicky misto do tempu? Leo |
||
Časová prodleva: 2 měsíce
|
|||
tk Profil * |
#12 · Zasláno: 4. 10. 2007, 12:45:22
Stejný problém. IE5.5 ani IE6 mi nekešují obrázky na pozadí zadané přes background-image v externím css. Při každém reloadu se natahují znova a znova. Mod_expires na hostingu je zakázán, už je kvůli tomu honím. V natahovaných obrázcích není žádný expires ani cache-control. Když to nepovolej, existuje jiná možnost než změna hostingu (to se mi nechce, mám ho předplacený na rok dopředu)?
|
||
tk Profil * |
#13 · Zasláno: 5. 10. 2007, 13:40:03
Vyřešeno! Pokud není povolen mod_expires ani mod_headers stačí přidat do .htaccess
BrowserMatch "MSIE" force-no-vary Viz též zde. |
||
Časová prodleva: 17 dní
|
|||
Alll Profil * |
#14 · Zasláno: 22. 10. 2007, 14:24:57
Použil jsem následující a funguje bezvadně:
soubor .htaccess pro IE BrowserMatch "MSIE" force-no-vary soubor index.php pred deklaraci hlavicky html dokumentu //cachovani obrazku Header("Cache-Control: must-revalidate"); $offset = 60 * 60 * 8; //8 hodiny v cache, pak znovunacteni do cache $ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT"; Header($ExpStr); |
||
Časová prodleva: 1 rok
|
|||
Brembou Profil * |
#15 · Zasláno: 29. 1. 2009, 09:37:38
Použil jsem následující postup a výsledek žádný. Můžete mi prosím poradit co je špatně. Stránka ve FF i Opeře nebliká, ale v IE je při překlikání mezi okny znatelně viditelné blikání celé stránky.
|
||
AM_ Profil |
#16 · Zasláno: 29. 1. 2009, 16:35:21
Špatně je především to, že to s tímhle tématem nemá lautr nic společného?
|
||
Brembou Profil * |
#17 · Zasláno: 30. 1. 2009, 08:47:54
Děkuji za radu. Už se mi zdá, že to při přechodu mezi stránkami bliká míň :-)
|
||
Časová prodleva: 15 let
|
0