Nedá sa vymazať cache a stránka po refreshnutí sa neaktualizuje

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
matlej
Člen | 10
+
0
-

Dobrý deň
trápim sa s jedným problémom ohľadom cache. Vždy keď zmením nejakú šablónu a pokúsim sa refreshnúť stránku tak zostáva na stránke starý obsah a privádza ma to do zúfalstva. DebugMode mám nastavený na TRUE a keď sa pokúsim vymazať cache folder tak sú tam zamknuté súbory ktoré sa nedajú vymazať a myslím že to je asi ten problém. Cache môjho prehliadača tiež vymazávam čiže ten odpadá. Prosím vás o radu fakt je to frustrujúce neustále riešiť takéto hlúposti.

Problém som vyriešil vďaka pomoci @newPOPE (chcel by som mu ešte raz poďakovať :)) nasledovne:

  1. bootstrap.php som zmenil z
<?php

require __DIR__ . '/../vendor/autoload.php';

$configurator = new Nette\Configurator;

$configurator->setDebugMode('XX.XX.XX.XX'); // enable for your remote IP

$configurator->enableDebugger(__DIR__ . '/../log');

$configurator->setTempDirectory(__DIR__ . '/../temp');

$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->register();

$configurator->addConfig(__DIR__ . '/config/config.neon');

$container = $configurator->createContainer();

return $container;

na

<?php

require __DIR__ . '/../vendor/autoload.php';

$configurator = new Nette\Configurator;

//$configurator->setDebugMode('XX.XX.XX.XX'); // enable for your remote IP
$configurator->setDebugMode(TRUE); // ak ste na production dajte FALSE ak na devel tak dajte
// TRUE

$configurator->enableDebugger(__DIR__ . '/../log');

$configurator->setTempDirectory(__DIR__ . '/../temp');

$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->register();

$configurator->addConfig(__DIR__ . '/config/config.neon', $configurator::AUTO);

$container = $configurator->createContainer();

return $container;

Tu bola tá chyba ja som tam mal iba $configurator->setDebugMode(‚XX.XX.XX.XX‘) a ďalšia vec že keď nastavíte debugMode na TRUE/FALSE (bez úvodzoviek!) tak je potrebné ešte zmeniť aj riadok

$configurator->addConfig(__DIR__ . '/config/config.neon')
$configurator->addConfig(__DIR__ . '/config/config.neon', $configurator::AUTO)

Tracy mi povedala že to má byť Configurator::AUTO ale to vám nepôjde musí to byť $configurator::AUTO

  1. Zmenil som aj config.neon z
	parameters:


	php:
		date.timezone: Europe/Bratislava


	application:
		errorPresenter: Error
		mapping:
			*: App\*Module\Presenters\*Presenter


	session:
		expiration: 14 days


	services:
		- App\Model\UserManager
		- App\Forms\SignFormFactory
		router: App\RouterFactory::createRouter

	database:
		dsn: 'mysql:host=192.168.18.9;dbname=vasa_db'
		user: 'usr'
		password: 'heslo'
		options:
			lazy: yes

na

#
# WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
# https://nette.org/en/security-warning
#
common:
	parameters:


	php:
		date.timezone: Europe/Bratislava


	application:
		errorPresenter: Error
		mapping:
			*: App\*Module\Presenters\*Presenter


	session:
		expiration: 14 days


	services:
		- App\Model\UserManager
		- App\Forms\SignFormFactory
		router: App\RouterFactory::createRouter


	database:
		dsn: 'mysql:host=192.168.18.9;dbname=vasa_db'
		user: 'usr'
		password: 'heslo'
		options:
			lazy: yes


production < common:

development < common:

Druhý bod som asi robiť nemusel ale dal som ho do zálohy :D

Editoval matlej (30. 7. 2015 11:50)

tweak
Člen | 9
+
0
-

jaký OS, verze Nette, …?

Editoval tweak (30. 7. 2015 10:14)

matlej
Člen | 10
+
0
-

Ubuntu 14.04, Nette 2.3.0 cez composer stiahnuté pre troma dňami

matlej
Člen | 10
+
0
-

Teraz to robím tak že súbor vymažem a znova vytvorím a potom to funguje, ale tento prístup nepríde ako moc produktívny

newPOPE
Člen | 648
+
0
-

„fakt je to frustrujúce neustále riešiť takéto hlúposti.“ toto by si si mohol odpustit. Keby kazdy mal takyto problem tak sa riesi asi ci?

Mas to na lokale alebo na serveri? Ak na lokale pristupujes cez localhost/... alebo nejaky.moj.host ktory smeruje v /etc/hosts na a127.0.0.1? Lebo sa domnievam, ze ak to mas niekde na serveri tak ta debugMode nezachrani lebo Nette detekuje, ze bezi v produkcii a potom sa ti na zmenu cache vykasle.

Editoval newPOPE (30. 7. 2015 10:28)

matlej
Člen | 10
+
0
-

Áno je to na produkčnom servere ale používame ho na dev. Prepáčte za moje impulzívne kecy, na fórum prichádzam až keď neviem čo ďalej a to som na tom fakt zle :)

newPOPE
Člen | 648
+
0
-

No tak potom si pri deploymente nahodte vymazanie cache a je (ak teda mate nejaky build server).

Ak nie tak myslim, je mozne si vynutit developmentMode v Configuratore resp. v DI containeri. Skus hladat parametre ako developmentMode a productionMode.

Ale silno doporucujem si nahodit build server nech Vam deploymenty riesi on a nebudes sa potom musiet vobec starat o nejake posielanie suborov na DEV server.

chemix
Nette Core | 1310
+
+2
-

Problem je v tom ze Nette od verze 2.3 (tusim) zavedlo ze by default je v produkcnim rezimu nemazana cache sablon po zmene jiz jednou vygenerovane sablony. Je to super, jelikoz se tak zrychli stranka, ale chapu ze pokud to clovek nevi muze byt frustrovan neustalym rucnim mazanim. Ale jsme programatori a cokoli se opakuje tak se da automatizovat.

Pokud z nejakeho duvodu pouzivate na vyvoj vzdaleny server a nedej boze rucne v nem editujete soubory je treba si vynutit debug verzi … nedoporucovana varianta je $configurator->setDebugMode(TRUE); To pouzivaji vokurky. Lepsi je misto true sepsat seznam IP adres ktere na to maji pravo, zaroven se tim totiz povoli Tracy a zobrazovani chyb ⇒ pokud mate server pristupny z „venku“ je to potencionalni chyba jako prase.

Lepsi resenim je lokalni vyvoj v gitu a pushovani na dev server, kde je nastaven nejakej hook co automaticky smaze cache (Osobne toto resim takto a na miniserver.cz (affil.) se to nastavuje uplne snadno.)