Nedá sa vymazať cache a stránka po refreshnutí sa neaktualizuje
- matlej
- Člen | 10
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:
- 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
- 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)
- newPOPE
- Člen | 648
„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)
- newPOPE
- Člen | 648
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
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.)