Nacitani aktualnich souboru .js a .css na localu

před 3 měsíci

vosy
Člen | 442
+
0
-

Ahoj,
posledni dobou se mi stava ze kdyz na localu upravim nejaky css nebo js soubor tak se nenacte aktualni ale prijde mi jako z nejake cache.
Musim v prohlizeci zobrazit dany soubour a reloadnout ho.

bude problem v prohlizeci nebo nastaveni nette?

nette verze 2.4.

dix

před 3 měsíci

JZechy
Člen | 101
+
+2
-

@vosy CSS a JS si prohlížeč běžně cachuje, proto když ho změníš, tak většinou se nic nemění.

Řešení je přidat k tomu souboru parametr, například v práci máme v konfiguráku proměnou určující aktuální verzi, po každé, co upgradujeme, měníme tuto proměnou dle verze. Ta je v @layout.latte vypsaná ke všem CSS a JS stylem:

<link href=„style.css?v={$revision}“>

Jak dojde ke změně parametru, stáhne se nový CSS i JS.

A nebo můžeš použít třeba webloader komponentu, ta to parametrizuje automaticky a při každé změně cache se tak stahují aktuální styly a skripty.

Editoval JZechy (20. 3. 21:16)

před 3 měsíci

CZechBoY
Člen | 2390
+
0
-

Nebo upgradnout na ctrl+f5.

před 3 měsíci

Myiyk
Člen | 314
+
+2
-

U css a js souborů jako verzi dávám datum úpravy souboru.

Sice se musí zjistit to datum, ale odpadá nutnost uprovavat nějakou verzi a není tedy možné na to zapomenout.

před 3 měsíci

Rob Bob
Člen | 18
+
0
-

Myiyk napsal(a):

U css a js souborů jako verzi dávám datum úpravy souboru.

Sice se musí zjistit to datum, ale odpadá nutnost uprovavat nějakou verzi a není tedy možné na to zapomenout.

Při každém requestu? To se mi zdá jako zbytečně velká režie. Dal bych to např. jednorázově do nějakého deploy scriptu

před 3 měsíci

GEpic
Člen | 391
+
0
-

Rob Bob napsal(a):

Myiyk napsal(a):

U css a js souborů jako verzi dávám datum úpravy souboru.

Sice se musí zjistit to datum, ale odpadá nutnost uprovavat nějakou verzi a není tedy možné na to zapomenout.

Při každém requestu? To se mi zdá jako zbytečně velká režie. Dal bych to např. jednorázově do nějakého deploy scriptu

Na vývoji si můžeš dát za ? aktuální timestamp, na produkci poté můžeš upravovat verze za ? třeba v configu nebo v nějakém adminu, nebo si někde uchovávat datum posledního deploye, to už je na tvé fantazii.

Editoval GEpic (21. 3. 11:33)

před 3 měsíci

Zuben45
Člen | 213
+
-1
-

V develop modu používám jak psal @Myiyk datum úpravy souboru.

cca takto:

{$basePath}/css/style.min.css?{filemtime(WWW_DIR.'/css/style.min.css')}

Mám v plánu si přidat filter pro styl, který by detekoval dev a production mod, a podle toho zadal bud filemtime a nebo cislo/nazev verze :)

před 3 měsíci

ali
Člen | 190
+
0
-

Ja pri psani sveho webloadru jsem to vyresil tim, ze jakmile se znovu rebuildne kontejner nebo se zmeni md5 souboru, tak se refreshne i „token“ za otaznikem (pouze v debug modu).

před 3 měsíci

CZechBoY
Člen | 2390
+
0
-

@ali to už je snad rychlejší ten filemtime než počítat pokaždý md5.

před 3 měsíci

ali
Člen | 190
+
0
-

@CZechBoY no jelikoz kopiruju nastavene soubory z jedne slozky do www foldru, tak ten filemtime je v mem pripade nepouzitelny.

Nicmene jsem si to zmeril, a rozdil zas tak markantni neni
pri pouziti filemtime: ~0.010ms
pri pouziti file_md5: ~0.012ms
Kontrolovane soubory
normalize.css
bootstrap.min.css
font-awesome.min.css
jquery.min.js
tether.min.js
bootstrap.min.js
nette.ajax.js
netteForms.min.js
plus font soubory z font awesome

Editoval ali (22. 3. 5:54)

před 3 měsíci

GEpic
Člen | 391
+
+2
-

ali napsal(a):

@CZechBoY no jelikoz kopiruju nastavene soubory z jedne slozky do www foldru, tak ten filemtime je v mem pripade nepouzitelny.

Nicmene jsem si to zmeril, a rozdil zas tak markantni neni
pri pouziti filemtime: ~0.010ms
pri pouziti file_md5: ~0.012ms
Kontrolovane soubory
normalize.css
bootstrap.min.css
font-awesome.min.css
jquery.min.js
tether.min.js
bootstrap.min.js
nette.ajax.js
netteForms.min.js
plus font soubory z font awesome

Knihovny, které neměníme (jQuery, bootstrap.js, atp.) načítáme rovnou z CDN serverů, není potřeba je na každý projekt stahovat.

před 3 měsíci

ali
Člen | 190
+
0
-

@GEpic to samozrejme, ale o tom rec nebyla (btw: moje applikace bezi na intranetu, takze tam ta moznost neni)

před 2 měsíci

h4kuna
Člen | 599
+
+1
-

Ahoj,

připravil jsem jednoduchý filter, který řeší tento problém.