Změny se neprojevují v PrestaShopu? Zkontrolujte 5 vrstev mezipaměti
Když se změny v PrestaShopu neprojevují, stará verze stránky sedí v jedné z pěti vrstev mezipaměti: v prohlížeči, v CDN, jako je Cloudflare, v šablonách Smarty a sloučených souborech CSS a JS, v mezipaměti Symfony, nebo v mezipaměti serveru. Kontrolujte od nejbližší dál, protože první dvě zkontrolujete za minutu bez přihlášení do administrace.
Autor: Tým TellMyShop. Průvodce pro majitele obchodů na PrestaShopu: příčina, ruční oprava a stejná práce v rozhovoru v chatu.
Naposledy aktualizováno: · 4 min čtení
Proč se uložená změna v e-shopu neobjeví?
Protože mezi databází a obrazovkou zákazníka je několik míst, která si pamatují hotové stránky a soubory, aby e-shop běžel rychleji. Změna uložená v administraci jde do databáze hned. Hotová verze stránky v mezipaměti o ní ještě neví.
Čím blíž má změna ke vzhledu, tím víc vrstev se o ní musí dozvědět. Nový popis produktu se obvykle ukáže hned. Oprava v souboru CSS šablony prochází všemi vrstvami, a proto právě ta nejčastěji „nefunguje“.
Pět vrstev: kde hledat starou verzi
| Vrstva | Co si pamatuje | Jak ji poznáte | Jak ji vymazat |
|---|---|---|---|
| 1. Prohlížeč | CSS, JS, obrázky | změna je vidět v anonymním okně | načtení bez mezipaměti (Ctrl+F5, na Macu Cmd+Shift+R) |
| 2. CDN, například Cloudflare | celé stránky a soubory | stará verze i na telefonu přes mobilní data | vymažte ji v panelu CDN |
| 3. Smarty a CCC v PrestaShopu | zkompilované šablony, sloučené CSS a JS | změna v souboru .tpl nebo .css se nikde neukáže | tlačítko v Rozšířené parametry > Výkon |
| 4. Symfony (var/cache) | konfigurace, trasy, části administrace | změny nastavení modulů nebo administrace se projeví pozdě | stejné tlačítko, nebo smazání obsahu var/cache |
| 5. Server (OPcache, Varnish, mezipaměť hostingu) | zkompilované PHP, celé odpovědi | nic z výše uvedeného nepomohlo | panel hostingu nebo podpora hostingu |
Dokumentace PrestaShopu popisuje nastavení vrstev 3 a 4 na stránce Výkon: vynucenou kompilaci šablon, mezipaměť Smarty a slučování CSS a JS.
V jakém pořadí kontrolovat?
- Otevřete stránku v anonymním okně prohlížeče. Vidíte změnu? To je vrstva 1 a stačí načtení bez mezipaměti.
- Otevřete stránku na telefonu, bez Wi-Fi. Pořád stará verze? Je e-shop za CDN? Vymažte CDN.
- Vymažte mezipaměť v administraci, v Rozšířené parametry > Výkon.
- Zkontrolujte, že jste změnili správný soubor: aktivní šablony, ne rodičovské šablony nebo záložní kopie. Stává se to častěji, než byste čekali.
- Pokud nic nepomohlo, požádejte hosting o vymazání mezipaměti na straně serveru.
Kdy tlačítko pro vymazání mezipaměti lže?
Když PrestaShop nemá oprávnění soubory smazat. Tlačítko ukáže hlášku o úspěchu, ale část souborů ve složce var/cache nebo ve složce se sloučenými CSS a JS zůstane, protože patří jinému uživateli serveru. Stává se to po stěhování e-shopu, po aktualizaci spuštěné z příkazové řádky a po ručním nahrání souborů přes FTP.
Příznak: mažete několikrát, hláška je zelená a stránka je pořád stará. Podobné příběhy se stále vracejí na fóru PrestaShopu o souborech CSS (polsky). V této situaci pomůže jen někdo s přístupem k serveru, který opraví vlastníka a oprávnění souborů. Přehled dalších častých chyb po změnách na serveru najdete v průvodci Zenboxu (polsky).
Jak chat pomůže, když se změny neprojevují
Váš chat (Claude nebo ChatGPT) nejdřív zjistí, kde problém je, a teprve pak něco maže. V TellMyShop Free ukáže technická kontrola e-shopu nastavení mezipaměti Smarty a slučování souborů, debug mode a chyby z posledních dnů. Chat také umí načíst stránku e-shopu jako prohlížeč a zkontrolovat, co vrací: stav, přesměrování, titulek a nadpisy.
Vy: Změnil jsem barvu tlačítka v custom.css, ale e-shop pořád ukazuje starou. Zjisti, kde je problém.
Váš chat: Vaše šablona má zapnuté slučování CSS, takže e-shop posílá jeden sloučený soubor uložený před změnou. Soubor custom.css v aktivní šabloně už novou barvu má.
Navrhuji vymazat mezipaměť šablon a sloučených souborů. První návštěvy po vymazání budou pomalejší.
Vy: Udělej to.
Váš chat: Vymazáno. Při první návštěvě e-shop sestaví nový sloučený soubor, s novou barvou. Pokud pořád vidíte starou, načtěte stránku v prohlížeči bez mezipaměti a pak zkontrolujte, zda e-shop není za CDN.
Vymazání mezipaměti funguje v TellMyShop Pro se zapnutým přepínačem Šablona. Mezipaměť se sama znovu sestaví, takže tato akce není v historii změn a není co vracet. Ukázkový požadavek najdete v případu použití obnovení stránek v mezipaměti.
Pokud byla změna v patičce, přečtěte si také, jak odstranit „Powered by PrestaShop“, aby změna přežila aktualizaci šablony. A pokud místo staré verze vidíte prázdnou stránku nebo chybu, přečtěte si náš článek o chybě 500 v PrestaShopu.
Otázky a odpovědi
Kde je v PrestaShopu tlačítko pro vymazání mezipaměti?
V administraci přejděte do Rozšířené parametry a pak Výkon. Tlačítko pro vymazání mezipaměti je v pravém horním rohu stránky. Odstraní zkompilované šablony, mezipaměť Smarty a sloučené soubory CSS a JS. Nevymaže prohlížeč zákazníka ani mezipaměť serveru a CDN, které fungují mimo PrestaShop.
Může vymazání mezipaměti e-shopu uškodit?
Nesmaže žádná data e-shopu. První návštěvy po vymazání jsou pomalejší, protože PrestaShop šablony a soubory připravuje znovu. Ve velkém e-shopu je lepší to udělat mimo špičku. Nedělejte to během importu produktů.
Proč se po úpravě CSS nic nezmění?
Nejčastěji má e-shop zapnuté slučování CSS a JS, takže prohlížeč dostane starý sloučený soubor. Vymažte mezipaměť v administraci a pak stránku znovu načtěte bez mezipaměti prohlížeče. Pokud se pořád nic nemění, zkontrolujte, že jste upravili soubor aktivní šablony, ne rodičovské šablony nebo kopie.
Pomůže mi debug mode změny uvidět?
Vypne část mezipaměti a ukazuje chyby, takže na chvíli usnadní diagnostiku. Nenechávejte ho zapnutý na ostrém e-shopu, protože web zpomaluje a zákazníkům může ukazovat technické hlášky. Až to zkontrolujete, vypněte ho a vymažte mezipaměť.
Umí chat vymazat mezipaměť?
Ano, v TellMyShop Pro se zapnutým přepínačem Šablona. Zapnete ho v panelu modulu na 24 hodin a vyžaduje zálohu databáze ze stejného dne. V bezplatné verzi TellMyShop Free chat zkontroluje nastavení mezipaměti a ukáže, kterou vrstvu podezírat, ale nic nevymaže.
PrestaShop je registrovaná ochranná známka společnosti PrestaShop SA. Claude je ochranná známka společnosti Anthropic PBC. ChatGPT a OpenAI jsou ochranné známky společnosti OpenAI. TellMyShop s těmito společnostmi není propojen.