Routování a relativní cesty k souborům

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

Čau, začal jsem aplikovat routování na svůj web a mám drobný problém. Používám JS skript pro hezký zobrazování obrázků (lighbox). Skript ale používá své vlastní obrázky pro tlačítko „next“, „close“, … . Cesty k obrázkům mám relativní „images/…“, no a problém je v tom, že pokud mám teď routováním vytvořenou adresu www.neco.cz/…ty/kategorie a v ní používám ten skript, tak mi to ty obrázky nezobrazí. Co s tím?

Dík Uiii

Foowie
Člen | 269
+
0
-

Možností je několik. Změnit adresy na absolutní v JS by měl umět plugin Webloader . Dále je tu možnost tam skrátka tu absolutní adresu dát napevno. Nebo neměnit obrázky v JS, ale trošku si s tím pohrát a měnit jenom styly a odkazy na obrázky by byly v CSS souboru. Nebo na každé stránce můžeš mít malý js scriptík který by ti definoval globální proměnnou s adresou…

Editoval Foowie (26. 5. 2010 10:53)

Richard Jedlička
Člen | 51
+
0
-

Aha, takže to znamená, že to pomocí routování udělat nejde, musím to tedy nějak obejít.

Jan Tvrdík
Nette guru | 2595
+
0
-

Pokud ten lightbox neprogramoval debil, tak tam bude možnost zadat nějakou basePath.

VeeTee
Člen | 6
+
0
-

Ja mam s tymto rovnaky problem – predovsetkym v niektorych css fixoch mam img/neco.jpg → samozrejme pri route /<presenter>/<view>/<id> – sa to interpretuje ako /<presenter>/<view>/<id>/img/neco.jpg , takze to treba nejako opravit.

Nebol by problem prepisat to na /cesta/img/neco.jpg ale linku na developer serveri mam localhost/project/… a production linku projekt.com/ – bud to funguje na jednom alebo druhom…

vie niekto o rieseni, ktore by mi fungovalo aj na developerskom aj produkcnom serveri bez nutnosti to prepisovat? pridavat (odobrerat) „/project“ v linke? (nieco ako magic_root/image.jpg – a nech je akakolvek absolutna cesta sa to presmeruje v pripade developerskeho na /project/ a v pripade produkcneho len na / )

redhead
Člen | 1313
+
0
-

v css jsou cesty relativní ke složce kde se css soubor vyskytuje. Takže tam relativní adresy fungují, vzhledem k onomu souboru, nebo podle zobrazené stránky (url)

RadH
Člen | 23
+
0
-

Taky si můžeš v šabloně definovat JS proměnnou basePath (nejlépe v šabloně @layout).

<script type="text/javascript">
	var basePath = {$basePath};
</script>

A pak ji v lightboxu použít.

<script type="text/javascript">
$(document).ready(function() {
	$('a.lightbox').lightBox({
		imageLoading:  basePath + '/images/lightbox/ico-loading.gif',
		imageBlank:    basePath + '/images/lightbox/blank.gif',
		imageBtnClose: basePath + '/images/lightbox/btn-close.gif',
		imageBtnPrev:  basePath + '/images/lightbox/btn-prev.gif',
		imageBtnNext:  basePath + '/images/lightbox/btn-next.gif',
		txtImage:      'Obrázek',
		txtOf:         'z'
	});
});
</script>