jak znovupoužitelně vyčlenit část aplikace včetně js, obrázků a css

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

Jakým způsobem v čistém Nette znovupoužitelně oddělit různé části aplikace?

V nejjednodušším případě, bude mít aplikace nějakou administraci a frontend.

Administraci budu schopen používat na podobných projektech znovu, proto bych ji přesunul do vlastního modulu. Jenomže tím bych dal stranou jen model a presentery se šablonami, neoddělil bych tím js a css, dále bych při nasazení musel nastavovat routy.

Existuje způsob, jak docílit kompletního oddělení „modulu“ tak, aby byl snadno znovupoužitelný?
Existuje způsob, jak oddělit do „modulu“ pro něj specifické css a js?

Prostě hledám způsob, jak vývoj administrace přesunout ideálně úplně bokem od frontendu, ale klientovi nasazovat současně. A přitom mít možnost v ní např. opravovat chyby a snadno tyto opravy distribuovat všem, bez rozkopírovávání x souborů, což dnes „modul“ zdá se mi obnáší.
Oddělený kód může být klidně ve vendor/others, na tom mi nezáleží, naopak by měl mít u sebe své css a js.

akadlec
Člen | 1326
+
0
-

Udělat si z toho „opravdový modul“ ve kterém budeš mít vše, od modelů přes routy až po presentery. Modul pak připojovat jako extesnion přes DI.
Statické soubory buď řešit tak že budeš mít na to nějakou další knihovnu která se ti o to bude starat a nebo prostě vždy bude muset někdo ty statické soubory připojit.

Pro inspiraci můžes skočit na blog jsifaldy Já jeho postup používám. A statické soubory řeším pomocí webloaderu kterému ty soubory předá extension sám.

Jiří Nápravník
Člen | 710
+
0
-

akadlec taky pro staticke soubory pouzivam Webloader. Ale jak řešíš obrázky? Sice je to výjimečné, ale občas je nějaký specifiký

akadlec
Člen | 1326
+
0
-

@Jiří Nápravník: pokud myslíš obráky v CSS tak base64 a o to se mě stará webloader.

Jiří Nápravník
Člen | 710
+
0
-

akadlec ano tim se to da resit, nicmene nechcio to vse prevadet ruco, do stylu pisu primo obrazky nezakodovane a zakodovava mi to az pak webloader (mam tam vlastni filter). a hlavne ne vzdy je vhodny zakodovani, napriklad velky obrazek apod. Ale jak jsem pochopil, tak to asi neresis nijak:)

Tomáš Kolinger
Člen | 136
+
0
-

Nejčistější řešení je symlink do public složky. Alternativou je alias pro danou složku na straně webserveru ale to je mnohem pracnější. Ekvivalent k symlinku je kopírovat všechny obrázky do public složky ale to už je lepší mít deploy script se symlinkem, protože se to bude jednodušeji aktualizovat a nebudou duplikovaná data.

Ještě by se to dalo servírovat přes PHP ale to je podle mě špatný řešení, jelikož statický soubory si má handlovat webserver, protože to zbytečně žere výkon a procesy PHP.

V případě webhostingů to bude složitější. Tam symlinky fungovat asi nebudou a dělat nějaký post-deploy script bude taky oříšek (bez přístupu na konzoli).

Pro porovnání: v Jave se to řeší pomocí servletu = java čte a odesílá obrázky, python (django) v dev prostředí to také řeší přes nějaký python script ale na produkci se to řeší pomocí aliasů na webserveru

Editoval Tomáš Kolinger (12. 5. 2014 19:46)

akadlec
Člen | 1326
+
0
-

@Jiří Nápravník: počkej počkej jak růčo? Dyť od toho tu jsou filtry. Já mám v csskách normálně cesty a obrázky, filtr bach z nich udělá base reprezentace. Jinak pro případ že se ve stylu objeví soubor co nejde převést tak to řeším symlinkem do static složky ovšem to je trochu komplikovanější protože se musí pak poladit cesta, protože všechny scripty se cachují.

@Tomáš Kolinger: nevidím důvod proč by měly statické fajly žrát nějaký výkon, od toho tu přece máme cache navíc se pak dají distribuovat na CDN body.

Jiří Nápravník
Člen | 710
+
0
-

akadlec však jo, to píšu, že to nechci psát růčo, tak mám filtr, který mi to převede na tu base64. Nicméně pokud mám ty assets v app složce jak styl, tak obrázek a filtr mi to převádí. Tak nevím, v jakém pořadí se filtry vykonávájí. Bude mít dobře tu cestu, aby to převedl správně?

akadlec
Člen | 1326
+
0
-

mno u mě jo ;) sem si ty filtry upravil tak aby mě to žralo ;)

Jiří Nápravník
Člen | 710
+
0
-

A nechceš se pochlubit úpravou? Já mám ten filtr hodně dummy, vezme a pokud soubor existuje a má méně než 20kb, tak ho převede:-) Btw moc jsem nepochopil, proč přímo ve webloader ten převod není, ba co víc, proč vlastně neakceptuje data-images (zatím je PR na něj)