Ako uplne vypnut/zakazat cache
- buksy
- Člen | 22
Ahojte, ako mozem kompletne zakazat cache?
Mam problem, ze ked nieco upravim v php (v presenteri, alebo v library), na vystupe sa mi to zobrazi az po 3–5 refreshi stranky. Som si isty ze to nesposobuje cache browsera. Vacsinou ked zmazem priecinok temp/cache/_nette.FileTemplate alebo _nette.RobotLoader tak az vtedy mi zobrazi spravne stranku.
Snazil som sa nastavit si v config.neon NullStorage, ale vobec to nepomoholo
services:
cacheStorage:
class: Nette\Caching\Storages\DevNullStorage
snazil som sa tam nastavit aj templateCacheStorage, ale nette hlasi problem ked nastavim obidve moznosti naraz v config.neon
services:
templateCacheStorage:
class: Nette\Caching\Storages\DevNullStorage
Mohli by ste mi poradit co vyskusat? Zacina ma to celkom iritovat ze pri vyvoji musim po kazdej zmene mazat aj obsah cache priecinku. Alebo v com inom by mohla byt chyba?
PS: v bootstrap mam setDebugMode(true)
- Filip Procházka
- Moderator | 4668
Tohle by se dít nemělo, jakou máš verzi Nette? Ukážeš nám svůj
bootstrap.php
? V debug módu se musí šablony invalidovat
automaticky samy.
- buksy
- Člen | 22
No tiez si myslim ze by sa to nemalo stat, asi tam mam nieco velmi zle :)
Bootsrap.php je v podstate „defaultny“
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Configurator;
$configurator->setDebugMode(TRUE); // debug mode MUST NOT be enabled on production server
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../vendor/others')
->register();
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
$container = $configurator->createContainer();
return $container;
prikladam aj config.neon (config.local.neon je prazdny)
parameters:
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
mapping:
*: App\*Module\Presenters\*Presenter
session:
expiration: 14 days
database:
default:
dsn: "mysql:unix_socket=/tmp/mysql51.sock;dbname=dbname"
user: "user"
password: "pass"
options: null
debugger: true
explain: true
container:
debugger: true
services:
- App\Model\UserManager
- App\RouterFactory
router: @App\RouterFactory::createRouter
database: @nette.database.default
hydro:
class: App\Model\HydroManager
arguments: [@database]
# pre debug
cacheStorage:
class: Nette\Caching\Storages\DevNullStorage
#templateCacheStorage:
# class: Nette\Caching\Storages\DevNullStorage
Nette je vo verzii 2.1.2 (2014–03–17), versionId: 20102 podla loader.php
- buksy
- Člen | 22
Fakt nikto nema ziaden tip co by som mohol vyskusat? Este aj ked v presenteri mam nejaku chybu, napr:
Nette\InvalidArgumentException
Component name must be non-empty alphanumeric string,
‚fitness-arg‘ given.
tak aj ked to opravim, ani po piatom refreshi ta chyba nezmizne a call-stack mi zobrazuje chybu na starom kode ktory uz neexistuje.
PS: Teraz som si vsimol, ze ked stale refreshujem stranku, tak v priemere po 25 sekundach sa mi zobrazi skutocny vysledok, ako keby 25sekund trvalo nette kym si uvedomi ze subor bol zmeneny a nema nacitavat cache. Podla coho si nette overuje ci sa subor zmenil? Uklada si datum a cas poslednej, alebo velkost suboru? Je mozne ze by ten datum poslednej zmeny obsahoval len hodinu a minutu a neobsahoval sekundy? Mohlo by to sposobovat problem? Pripadne ak by ftp manager a php mali medzi sebou nejaky casovy posun? (i ked to je nepravdepodobne)