Latte template rendering vyhazuje: filemtime(): stat failed for temp/cache/latte/

mkoula
Backer | 57
+
0
-

Ahoj,

pokud mám u tracy v configu zapnuté scream: true, tak mi to velmi často vyhazuje chybu z šablony filemtime() ala:

filemtime(): stat failed for temp/cache/latte/presenters-templates-paginator.latte--ab1804fad9.php

Je tohle normální chování? Co to může způsobovat? Máte nějaké řešení? Něco v konfiguraci?

Editoval mkoula (13. 8. 2019 18:39)

Jan Tvrdík
Nette guru | 2595
+
+1
-

Pokud se to děje zhruba 1× pro každou šablonu po každém deployi, tak to je normální. DI container bude dělat to samé.

Jan Tvrdík
Nette guru | 2595
+
0
-

Děje se to proto, že deployuješ aplikaci, která nemá dopředu zkompilované šablony, takže se kompilují až za běhu. Většinou to ničemu nevadí, ale pokud máš web s hodně šablonami nebo s větší návštěvností, tak je lepší to zkompilovat předem (tzv. warmup). Např. Contributte Console Extra na to má command.

mkoula
Backer | 57
+
0
-

Přemýšlel jsem jestli to nedělá náhodou to, že to běží na dvou server instancích a sdílí společnou cache v redisu, ale trošku jsem si s tím hrál a dostal jsem se do stavu, že když v configu u tracy zapnu scream: true, mám prázdný cache/latte adresář, tak nejsem schopen vygenerovat ani přes návštěvu webu, ani přes Console Extra, kterou mám jedinou šablonu a pokaždné to skočí na Exception. Jakmile dam scream: false, tak už vše funguje, ale i tak přemýšlím, zda-li to je čitelné chování…

Editoval mkoula (14. 8. 2019 14:47)

David Grudl
Nette Core | 8218
+
+1
-

Smysl scream: true je v odhalování konkrétní skryté chyby, zapínat jej jindy nemá smysl. Aplikace v PHP běžně vyhazují spousty warningů a framework s tím počítá.