![]() |
Problem relativnih putanja
Imam jedan mali problemčić sa relativnim putanjama. Kapiram da je lako da se reši (svi su uspeli to da reše :D) ali ja ne nađoh rešenje. I nemojte da se smejete ako je lako :P
Ako npr. imam ovakav .htaccess fajl: Kôd:
RewriteEngine on Kako da mu kažem da ipak treba da traži to u sajt.com/style.css |
U <head> tagu dodaj <base href="sajt.com" />
Za ASPNET radi, trebalo bi i za PHP :). Thanks to IgorHW aka Bone Collector :). |
Kôd:
<style type="text/css" media="screen,projection">@import "/css/style.css";</style> |
Batali base, samo pocni putanju sa slashom i on krece od roota.
|
Koristi apsolutne putanje i do slika i do CSS-a i neće biti problema.
|
Eh, pa znam i ja tako, kad koristim apsolutne putanje :P
Mislio sam da ima neko rešenje da ne moram da menjam putanje do fajlova (na postojećem sajtu, na budućim sajtovima ću paziti kako dovlačim slike/stilove/whatever). Ovo sa base href mi se sviđa kako zvuči, videću da li valja. Hvala svima na odgovorima. |
stvar je extra prosta, sve slike koje su ubacene direktno u HTML se gledaju u odnosu na tu html stranu. Sve slike koje su ubacene preko CSS-a se gledaju u odnosu na taj stylesheet fajl u kome su zadate. Znaci ako imas stylesheet /style/default.css i u njemu: background-image: url(foo/bar.jpg); to u stvari znaci da ucitavas sliku koja se nalazi u /style/foo/ dir-u
Znaci imas opciju ili apsolutnih putanja kao sto vec rekose ljudi ili relativnih putanja uz upotrebu ../ oznake za parent folder (tipa u onom primeru od malopre url(../foo/bar.jpg) bi dalo sliku koja se nalazi u /foo folderu) |
Problem sa ../ je sto za svaku stranicu zasebno morate da razmisljate koliko ../ da stavite, drugi problem moze da bude ako se jedna stranica koristi u vise virtuelnih putanja, npr:
RewriteRule ^category/users_favorite/(.*)$ category.php?id=$1&fav=true RewriteRule ^category/(.*)$ category.php?id=$1 u ovom gore slucaju ce upotreba ../ da pravi probleme jer nema nacina da odredite kad treba koliko ../ da se ubaci pre putanje. Ja savetujem base tag. Ovo sto je Bojan napisao: "Batali base, samo pocni putanju sa slashom i on krece od roota." nisam isprobao ali ne vidim kako to moze da radi, koliko znam slash na pocetku ne oznacava root. |
Citat:
|
Znam da je to mislio ali moje pitanje je da li to funkcionise?
|
^ Funkcionise.
|
Evo sad sam isprobao u firefoxu, radi da ali ne onako kako bih ja zeleo tj. ne oznacava root sajta nego root domena, tako da donekle moze da se iskoristi ukoliko imate svoj domen a ne nesto tipa www.googlepages.com/vassajt/.
Ako imate http://www.domen.com a na vasem racunaru http://localhost/domen to onda otezava razvijanje aplikacija jer vam na lokalu nece raditi uopste. Ja i dalje ostajem pri starom dobrom base href tagu ;) |
^ Prosto mapiraj domen na localhost i resen problem.
|
Da mapiram www.domen.com na http://localhost/domen? Kako to da uradim?
Ako mapiram domen.com na localhost opet imam domen.com/domen i nista mi ne vredi. A cak i da mogu to da uradim opet ostaje problem sto onda ne mogu da vidim pravi sajt vec samo moj lokalni na masini. |
Ne tako kako si rekao, vec pravis virtual sites koji su mapirani na direktorijume na localhostu.
Googlaj malo, zahteva samo par izmena u httpd.conf i HOSTS fajlu (pretpostavljam da koristis Windows i Apache). I drugo, ne moras staviti pravi domen, vec nesto tipa www.test123.com |
Citat:
ja sve sajtove radim ovako ako radim www.sajt.com u lokalu je www.sajt.dev uvek apslutne putanje, i nema problema, radi rewite, rade ajax zavrzlame, moze i pod winu i pod *nix-u .... nema apsolutno nikakvih problema. |
Citat:
Koristim IIS 6.0 i asp.net. Citat:
|
Citat:
Citat:
|
Stavi
<base href="<?php "http://" . $_SERVER['HTTP_HOST'] . str_replace('\\', '/', dirname ($_SERVER['SCRIPT_NAME'])) ?>" /> Pa neces morati da mislis o promenjenom domenu. U jednom CMS koji sam radio sam ovo resio tako sto sam u letu preracunavao sve putanje i menjao ih. Tako sam mogao da template editujem u DreamWeaver-u u vizuelnom rezimu jer su svi elemnti adresirani relativno na editovani dokument, a kada sajt ucita template on mu izmeni sve relativne putanje i sve lepo funkcionise i na sajtu. |
Citat:
Uzgred niko te ne sprecava da pomocu hosts fajla over-rajdujes bilo koji domen, ukljucujuci i onaj pravi koji ces koristiti na serveru. Znaci stavis u hosts liniju: 127.0.0.1 yahoo.com i cepas, browser ce pokusavati da nadje yahoo u lokalu. Znaci teorijski nije nikakav problem da razvijas u lokalu i na serveru koristeci identican domen (mada je nepotrebno jer sa apsolutnim putanjama sve sasvim fino radi i sa razlicitim domenima) |
Ne, to sto si ti napisao je relativna putanja. Apsolutne putanje moraju da poseduju kompletnu adresu nekog fajla na internetu ukljucujuci domen.
|
@ Ivanhoe
Slazem se sa Igorom. To sto si naveo je relativna putanja, a ne apsolutna... |
^ Obojica ste u krivu, Ivanhoe pravo zbori.
/something/somefile.html je apsolutna putanja (u odnosu na tekuci domen), kao i http://www.domain.com/something/somefile.html something/somefile.html je relativna putanja, u odnosu na tekuci direktorijum. Imate na google gomilu primera. |
Još jedan glas za ajvanhoa :-)
|
OK pogledao sam kako je po standardu i moja je greska, putanje koje pocinju sa / se definisu kao apsolutne.
Medjutim, idalje mislim da ja to ne mogu da upotrebim u mom slucaju (IIS), shvatam da je ovo forum za apache server i da vi to uspesno koristite i da ste dali primere za to tako da nema potrebe da raspravljamo vise o ovome jer izgleda za apache moze da se upotrebi. I vise mi se svidja nacin koji je opisao kodi, da u lokalu koristim .dev ali ja ne mogu tako da koristim. |
U kakva se diskusija razvila :)
Sviđa mi se ono što Peđa reče: PHP kôd:
|
Samo da dopunim:
Kôd:
Imas srece sto se i ja bas bakcem sa istim problemom. Ideja sa <base href= > koja je izneta ovde mi se bas potrefila tako da mi je sad stvar mnogo jednostavnije od umetanja apsolutnih putanja za ama bas sve na strani. |
Citat:
|
Citat:
apsolutna putanja je jednostavno najbolja - nema brige oko imena domena * - nema dodatnog koda koji proverava gde si * - radi svuda * a i ako treba, lako se dodaje :) |
igore, with all due respect, ovo spada u neke osnove, ono sta je URI, a sta URL, sta su relative a sta apsolutne putanje, apsolutno je neophodno da se to razume, da bi moglo da se radi... tako da procitaj malo o tome, ima puno textova na netu koji to lepo objasnjavaju...
i naravno to mozes da koristis na svakom serveru,posto se apsolutne putanje u web space-u gledaju u odnosu na web root, znaci nebitno je da li je windows ili linux, putanje su iste i svaki web server to ume da koristi... |
Napravio novi sajt u IIS-u, dodao domen u hosts file i morao sam da promenim putanju u VS-u zbog debugera, za sada izgleda da ce sve raditi kako treba.
Hvala svima na trudu i strpljenju :) |
Citat:
I moras priznati da je apsolutni link koji pocinje sa slashom ustvari relativan u odnosu na domen te otuda konfuzija. Jeste da ima puno tekstova na netu ali vecina to pogresno objasnjava. Prvi rezultat na google-u je ova stranica http://www.webreference.com/html/tutorial2/3.html koja navodi URL sa slashom na pocetku kao relativan. |
Citat:
Ne slazem se sa tobom po pitanju apsolutnih putanja. Kada pravim neku web apliakciju trudim se da bude sto univerzalnija i sto manje zahtevna a jedna od uslova je obicno i taj da apliakcija radi kako god da je instaliras, da li u root ili u poddirektorijum. Navikao sam da postujem pravilo da se svaki spoljni dokument u HTML-u referencira relativno, jer je to prirodan i lako portabilan nacin. ne jednom mi se deislo da sam sajt koji je zapocet kao poddirektorijum na nekom domenu, posle par godina premestim na zaseban domen. moj pristup omogucava da je preseljenje vrlo jednostavno, a cesto i ne moram da preseljavam nego samo zalepim domen na postojeci poddirektorijum drugogo domena i to radi i na stari i na novi nacin. Inace, iskopao sam da sam ovaj trik korsiti pre nekih desetak godina u slicnoj situaciji, samo sto sam se s godinama rada u PHP-u navikao da razmisljam da sve sto je dinamicno u dokumentu, resavam u PHP- a ne u HTML-u. |
Ja danas jedva nasao putanju do kuce, relativnu.
![]() |
4 Prilog(a)
ROFL :D
Ja, opet, juce jedva nasao putanju... :1039: |
Ko je vid'o - vid'o. ;)
|
Off Topic: Citat:
|
Off Topic: E Dragane Babicu stvarno ti svaka cast.Uvek se odusevim sa ovim tvojim slikama :) |
Nema bolje zabave od one kada dodjes kuci demoliran i ides na interweb i postavljas slike sebe u raznim agregatnim stanjima. :)
Mada da se razumeti, gledali smo koncerte The Pogues i Shane MacGowana celo vece. |
Vreme je GMT +2. Trenutno vreme je 23:50. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.