Problém s cache v Nette\Database
- jtousek
- Člen | 951
Chyba se projevuje touto výjimkou. Na localhostu i na serveru je výjimka stejná, ale určitý rozdíl tam je.
localhost:
- Smažu všechen obsah /temp/cache
- V prohlížeči zobrazím stránku – stránka se zobrazí
- F5 – výše uvedená výjimka
- F5 – vše opět funguje
server:
- Smažu všechen obsah /temp/cache
- V prohlížeči zobrazím stránku – stránka se zobrazí
- F5 – stránka je neúplná, v logu se objeví výše uvedená výjimka
- F5 – problém narozdíl od localhostu nezmizí, stále neúplná stránka a výjimka
Chyba je zřejmě v práci s cache. Když jsem jako výchozí nastavil DevNullStorage nebo MemoryStorage, aplikace se mírně zpomalila, ale chyba zmizela.
EDIT: Omlouvám se, chyba je jak ve verzi 2.0 stable, tak v dnes (26.2.2012) stažené 2.1-dev z GitHubu.
Editoval jtousek (27. 2. 2012 0:11)
- hrach
- Člen | 1838
Srr, ale z toho se neda vyznat. Prvne, pouzivas nightly verzi? Pokud ne,
zkus to na ni. Dale, uz samotna vyjimka pri f5 je spatne, takze budeme
s dovolenim resit tvuj localhost problem. Potrebuji vykopirovat patricnou cast
aplikace a idealne taky strukturu db – aspon relacne popsat. Jeste to prosim
vyzkousej s storage MemoryStorage – ta uklada data v ramci jednoho
requestu – zjistime, kdy cache aspon chybuje.
Diky, H
- jtousek
- Člen | 951
Nette: 2.0 stable i dnešní 2.1-dev z Githubu (přidal jsem to i do úvodního příspěvku)
MemoryStorage: chyba se neprojevuje
Schéma relevantní části databáze: schema.sql schema.png
Aplikaci mohu zjednodušit, zabalit a poslat, ale to už kvůli zákazníkovi nemohu takhle veřejně.
EDIT: Zjistil jsem, že chyba se vyskytuje pouze v případě, že předtím volám count.
{* pokud ten n:if odstraním, chyba se nevyskytuje *}
<ul n:if="$product->related('product_page')->count()">
<li n:foreach="$product->related('product_page')->order('order') as $page">
<a n:href="productPage $page->id" title="{$page->name}">{$page->name}</a>
</li>
</ul>
Editoval jtousek (29. 2. 2012 12:29)