Autor Zpráva
niCe
Profil
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
niCe
Nemohl by pomoci tento návod: [url]http://www.jakpsatweb.cz/clanky/caching-tutorial-czech-translatio n.html[/url]?
niCe
Profil
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
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
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
"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
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
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
niCe
Mě osobně by to bylo jedno, pokud by to nečinilo příliš veliký traffic.
krteczek
Profil
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
"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
tk
Profil *
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 *
Vyřešeno! Pokud není povolen mod_expires ani mod_headers stačí přidat do .htaccess

BrowserMatch "MSIE" force-no-vary

Viz též zde.
Alll
Profil *
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);
Brembou
Profil *
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
Špatně je především to, že to s tímhle tématem nemá lautr nic společného?
Brembou
Profil *
Děkuji za radu. Už se mi zdá, že to při přechodu mezi stránkami bliká míň :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: