Absoluuttinen ja suhteellinen polku tiedostoihin. Absoluuttiset ja suhteelliset linkit

Tässä opetusohjelmassa selitämme aloittelijoille, mikä on absoluuttinen ja suhteellinen polku tiedostoon, ja myös missä tapauksessa kumpaa on parempi käyttää. Jos olet jo perehtynyt tähän aiheeseen, voit siirtyä seuraavalle oppitunnille.

Joten aloitetaan itse termin "polku" määritelmästä:

Polku (englanniksi polku) - joukko merkkejä, jotka osoittavat tiedoston sijainnin tiedostojärjestelmässä, hakemiston osoitteen.

Wikipedia

Jos puhumme sivustoista, polku on sama kuin linkki. Linkit voivat olla absoluuttisia tai suhteellisia. Katsotaanpa kumpaakin vaihtoehtoa tarkemmin.

Mikä on absoluuttinen polku tiedostoon

https://www.google.com/images/branding/googlelogo.png

Absoluuttista polkua voidaan käyttää CSS:ssä. Jos haluat esimerkiksi asettaa kuvan taustaksi, voit ottaa kuvatiedoston absoluuttisen URL-osoitteen JA määrittää sen tyylitaulukossa:

Taustakuva: url(http://www.example.com/img/bg.png);

Mikä on suhteellinen tiedostopolku

Suhteellisella osoitteella kaikki on paljon mielenkiintoisempaa - se voidaan laskea sekä sivuston juuresta että nykyisestä asiakirjasta. Suhteellinen juuren polku- tämä on polku, joka osoittaa tiedoston sijainnin suhteessa sivuston juurihakemistoon. Tässä tapauksessa osoite ei sisällä protokollaa eikä verkkotunnuksen nimeä, ja se alkaa kauttaviivalla / , joka osoittaa juurikansion. Tämä osoite näyttää tältä:

Taustakuva: url(/img/bg.png);

Kuinka helposti määrittää suhteellinen juuriosoite? Ota vain absoluuttinen linkki ja poista siitä protokolla ja verkkotunnus, jättäen vinoviiva ja kaikki sen jälkeen tulevat merkit.

Suhteellinen tiedostopolku asiakirjasta on polku tiedostoon suhteessa nykyiseen asiakirjaan. Tämä osoite riippuu sen tiedoston sijainnista, johon se on kirjoitettu. Joten kun suhteellinen linkki on määritetty tyylitaulukossa, se laskee tiedostopolun tyylitaulukon perusteella nykyisen verkkosivun tai juurikansion sijaan. Annetaan muutama esimerkki.

Esimerkki I

Jos tyylitaulukkomme style.css ja taustakuvatiedosto bg.png ovat samassa kansiossa (ei välttämättä juurihakemistossa), suhteellinen polku taulukosta kuvaan näyttää tältä:

Taustakuva: url(bg.png); /* kirjoitat vain tiedostonimen */

Esimerkki II

Jos tyylitaulukko on juurissa ja kuva img-kansiossa, suhteellinen linkki on seuraava:

Taustakuva: url(img/bg.png); /* ei tarvita kenoviivaa */

Esimerkki III

Jos tyylisivu on kansiossa ja kuva on tämän kansion vieressä, suhteellinen polku on seuraava:

Taustakuva: url(../bg.png); /* kaksi pistettä - mene yhden tason ylöspäin */

Esimerkki IV

Jos tyylisivu on kahdessa kansiossa ja kuva on ensimmäisen kansion vieressä, suhteellinen polku on seuraava:

Taustakuva: url(../../bg.png); /* nouse kaksi tasoa ylös */

Kaksi pistettä ja vinoviiva suhteellisen polun alussa tarkoittavat yhden tason nousua. Riippuen tasojen (hakemistojen) lukumäärästä, joille sinun on kiivettävä, sinun on syötettävä tarvittava määrä pisteitä vinoviivalla. Esimerkiksi, jos tyylisivu ei sijaitse kahdessa, vaan neljässä kansiossa, merkintä on vastaavasti seuraava:

Taustakuva: url(../../../../bg.png);

Jos kuva on piilotettu img-kansioon ja tyylisivu on piilotettu css-kansioon, sinun on poistuttava css-kansiosta ja siirryttävä img-kansioon. näin:

Taustakuva: url(../img/bg.png);

Jos kansioita on useita, sinun on myös rekisteröitävä ne. Muutetaan edellinen esimerkki: kuvittele, että img-kansiossa on toinen taustat-kansio, joka sisältää piirustuksemme. Suhteellinen polku olisi seuraava:

Taustakuva: url(../img/backgrounds/bg.png);

Kumpaa tapaa on parempi käyttää

Ehdoton linkin osoite Sinun on käytettävä sitä, jos tiedosto, johon linkität, on toisella sivustolla. Yhden sivuston sisällä absoluuttista polkua ei käytännössä käytetä (vaikka se toimii). Tämä johtuu useista seikoista: ensinnäkin tällaiset linkit voivat olla erittäin hankalia, ja toiseksi, jos verkkotunnuksen nimi muuttuu, syntyy ongelma - kaikki linkit johtavat vanhaan verkkotunnukseen, mikä voi johtaa moniin virheisiin ja rikkinäisiin linkkeihin.

Suhteellinen juuren polku toimii web-palvelimella, mutta se on hyödytöntä kehitettäessä paikallisella tietokoneella. Mutta tämäntyyppisen linkin etuna on, että voit siirtää tyylisivusi mihin tahansa kansioon sivustolla etkä pelkää taustakuvien URL-osoitteiden rikkoutumista.

Suhteellinen polku asiakirjasta- paras vaihtoehto verkkokehitykseen paikallisella koneella ilman palvelinta. Selaimessa voit tarkastella tietokoneellesi tallennettuja verkkosivuja normaalisti ja tiedostojen osoitteet toimivat. Ne toimivat live-sivustolla, mutta yhdellä ehdolla - jos et siirrä tyylisivua toiseen paikkaan (muuten sinun on säädettävä polkuja).

Kokeile suhteellisten polkujen käyttöä sekä paikallisella tietokoneellasi että verkkopalvelimellasi. Tämän toiminnan ymmärtäminen on varmasti hyödyllistä sinulle missä tahansa projektissa.

Lisää opetusohjelmassa: background-repeat -ominaisuus - ohjaa taustakuvan toistoa.

11.01.2007 44.5K

Kuten tiedät, tunnisteen href-parametrissa () sinun on määritettävä viittauksen kohteena olevan tiedoston polku.
Monet ihmiset kirjoittavat jotain kuten http://somesite.ru/catalog/doc.html. Kyllä, kukaan ei kiistä, se toimii. Mutta on yksi "mutta". Katsotaanpa esimerkkiä.

Anna sivustosi isännöidä esimerkiksi jollakin ilmaisella isännöinnillä ja sen osoite oli seuraava: http://fsite.freehosting.ru.
Palvelimella on noin 100 dokumenttia. Joten päätät siirtää verkkosivustosi toiseen verkkotunnukseen,
Olkoon se maksullinen isännöinti ru-alueella: http://site.ru. No, pitäisikö meidän nyt muuttaa http://fsite.freehosting.ru osoitteeksi http://site.ru kaikkialla?
Kyllä, kotisivun kaltaisten toimittajien ansiosta tämä on mahdollista. Mutta tämä ei ole ratkaisu.
Oletetaan, että tarkistat sen toimivuuden ennen kuin lataat sivun palvelimelle
kotiapache-palvelimellasi (niille, jotka eivät vielä tiedä, mikä "kotipalvelin" on, mene tähän (Apache-palvelimen asennus ja määrittäminen), ja http://localhostin sijaan sinun on kirjoitettava http:// site.ru kaikkialla samaa mieltä tästä, ainakin se on hankalaa.

Ratkaisu on, että määritettäessä tiedoston polkua ei oteta huomioon sen sijaintia sivustolla, vaan sen sijainti palvelimella.

Absoluuttinen polku

Otetaan esimerkiksi tiedosto doc.html, joka sijaitsee osoitteessa: http://somesite.ru/catalog/doc.html. Kuten tiedät, palvelimella on www-kansio. Kuten osoitteesta näemme, tämä kansio sisältää luettelokansion, ja se sisältää jo doc.html-tiedoston.

Jos määrität tiedoston polkua / ennen osoitetta, se on samanlainen kuin seuraava: juurihakemisto_pohjoisessa_pohjoinen/www/tiedoston polku.
Eli http://somesite.ru/catalog/doc.html on samanlainen kuin seuraava: /catalog/doc.html.
Joten kun osoitteen edessä on /, se tarkoittaa, että "laskenta" alkaa www-hakemistosta.
Nyt voit kirjoittaa /index.html mistä tahansa asiakirjasta http://localhost/index.html sijaan.
Mutta päästäksesi cgi-hakemistoon sinun on kirjoitettava näin: /cgi-bin/polku tiedostoon.

Yllä kuvatuilla menetelmillä luotuja polkuja kutsutaan absoluuttisiksi, koska palvelimella olevan tiedoston absoluuttinen (täysi) polku ilmoitetaan.

Suhteellinen polku

On myös suhteellisia polkuja, jotka on määritetty suhteessa itse asiakirjaan, josta linkki tulee.
Jos esimerkiksi luot linkin tiedostoon doc.html newcat/new.html, tämä tarkoittaa, että tiedosto new.html sijaitsee newcat-hakemistossa, joka puolestaan ​​on samassa hakemistossa kuin doc.html-tiedosto. Kuten näet, tämä polku on suhteessa doc.html-tiedostoon. Missä tahansa tämä tiedosto sijaitsee, polku newcat/new.html on aina voimassa, jos doc.html-tiedosto ja newcat-hakemisto ovat samalla tasolla (eli samassa hakemistossa).

Voit myös siirtää hakemistoa ylöspäin suhteessa asiakirjaan. Tätä varten sinun on kirjoitettava ../.
Esimerkiksi on olemassa hakemisto iso, se sisältää kaksi hakemistoa: ensisijainen ja toissijainen. Ensisijainen hakemisto sisältää jo tutun doc.html-tiedoston; ja toissijaisessa hakemistossa on tiedosto new.html. Jotta voit luoda linkin doc.html-tiedostosta new.html-tiedostoon, sinun on kirjoitettava ../secondary/new.html. Mutta jos iso hakemisto sijaitsee www-hakemistossa, polku new.html-tiedostoon voidaan määrittää seuraavasti: /big/secondary/new.html

Linkin osoite voi olla joko absoluuttinen tai suhteellinen. Absoluuttisten osoitteiden tulee alkaa protokollalla (yleensä http://) ja sisältää sivuston nimi.

Suhteelliset linkit perustuvat sivuston tai nykyisen asiakirjan juureen.

Esimerkki 8.2 näyttää kuinka luodaan absoluuttinen linkki toiselle sivustolle.

Esimerkki 8.2. Absoluuttisia viittauksia käyttämällä

Absoluuttinen osoite



HTML:n oppiminen

Kun määrität linkiksi sivustohakemiston (esimerkiksi http://site/css/), hakemistotiedosto näytetään. Tämä on tiedosto, joka ladataan oletuksena, kun hakemistoa käytetään ilman nimenomaista tiedoston nimeä. Yleensä hakemistotiedosto on asiakirja nimeltä index.html.

Absoluuttisia linkkejä käytetään yleensä osoittamaan toisessa verkkoresurssissa olevaan asiakirjaan, mutta myös nykyisen sivuston sisällä on mahdollista tehdä absoluuttisia linkkejä.

Tätä ei kuitenkaan usein harjoiteta, koska tällaiset linkit ovat melko pitkiä ja hankalia. Siksi suhteellisia linkkejä käytetään pääasiassa sivuston sisällä.

Linkit nykyiseen asiakirjaan

Kun luot suhteellisia linkkejä, sinun on ymmärrettävä, mikä arvo sinun tulee määrittää href-attribuutille, koska se riippuu tiedostojen alkuperäisestä sijainnista.

Katsotaanpa muutamia tyypillisiä vaihtoehtoja.

Kun lähdedokumentti on tallennettu yhteen kansioon ja linkitetty on sivuston juuressa, linkin osoitteeseen tulee sijoittaa kaksi pistettä ja vinoviiva (/) tiedoston nimen eteen alla olevan kuvan mukaisesti.

Kaksi pistettä tarkoittaa tässä tapauksessa nykyisen kansion jättämistä korkeammalle tasolle.

3. Tiedostot sijoitetaan eri kansioihin (kuva 8.6).

Nyt lähdetiedosto on kahdessa alikansiossa, ja jotta voit linkittää sivuston juuressa olevaan asiakirjaan, sinun on toistettava edellinen esimerkki kahdesti.

Linkki

Tilanne on samanlainen minkä tahansa määrän alikansioiden kanssa.

4. Tiedostot sijoitetaan eri kansioihin (kuva 8.7).

Nyt tilanne on muuttumassa, lähdetiedosto sijaitsee sivuston juurissa ja tiedosto, johon sinun on linkitettävä, on kansiossa. Tässä tapauksessa tiedoston polku on seuraava.

Linkki

Huomaa, että kansion nimen edessä ei ole ylimääräisiä pisteitä tai kauttaviivoja.

Linkki

Jos tiedosto ei sijaitse yhdessä, vaan kahdessa kansiossa, polku siihen kirjoitetaan näin.

Linkit sivuston juureen Joskus voit löytää polun tiedostoon suhteessa sivuston juureen, se näyttää siltä"/Kansio/Tiedoston nimi" kauttaviivalla alussa. Kyllä, levy Kurssit

tarkoittaa, että linkki johtaa kurssi-nimiseen kansioon, joka sijaitsee sivuston juuressa ja josta sinun on ladattava hakemistotiedosto.

Linkin osoite voi olla joko absoluuttinen tai suhteellinen. Absoluuttisten osoitteiden tulee alkaa protokollalla (yleensä http://) ja sisältää sivuston nimi.

Suhteelliset linkit perustuvat sivuston tai nykyisen asiakirjan juureen.

Esimerkki 8.2 näyttää kuinka luodaan absoluuttinen linkki toiselle sivustolle.

Esimerkki 8.2. Absoluuttisia viittauksia käyttämällä

Absoluuttinen osoite



HTML:n oppiminen

Kun määrität linkiksi sivustohakemiston (esimerkiksi http://site/css/), hakemistotiedosto näytetään. Tämä on tiedosto, joka ladataan oletuksena, kun hakemistoa käytetään ilman nimenomaista tiedoston nimeä. Yleensä hakemistotiedosto on asiakirja nimeltä index.html.

Absoluuttisia linkkejä käytetään yleensä osoittamaan toisessa verkkoresurssissa olevaan asiakirjaan, mutta myös nykyisen sivuston sisällä on mahdollista tehdä absoluuttisia linkkejä.

Tätä ei kuitenkaan usein harjoiteta, koska tällaiset linkit ovat melko pitkiä ja hankalia. Siksi suhteellisia linkkejä käytetään pääasiassa sivuston sisällä.

Linkit nykyiseen asiakirjaan

Kun luot suhteellisia linkkejä, sinun on ymmärrettävä, mikä arvo sinun tulee määrittää href-attribuutille, koska se riippuu tiedostojen alkuperäisestä sijainnista.

Katsotaanpa muutamia tyypillisiä vaihtoehtoja.

Kun lähdedokumentti on tallennettu yhteen kansioon ja linkitetty on sivuston juuressa, linkin osoitteeseen tulee sijoittaa kaksi pistettä ja vinoviiva (/) tiedoston nimen eteen alla olevan kuvan mukaisesti.

Kaksi pistettä tarkoittaa tässä tapauksessa nykyisen kansion jättämistä korkeammalle tasolle.

3. Tiedostot sijoitetaan eri kansioihin (kuva 8.6).

Nyt lähdetiedosto on kahdessa alikansiossa, ja jotta voit linkittää sivuston juuressa olevaan asiakirjaan, sinun on toistettava edellinen esimerkki kahdesti.

Linkki

Tilanne on samanlainen minkä tahansa määrän alikansioiden kanssa.

4. Tiedostot sijoitetaan eri kansioihin (kuva 8.7).

Nyt tilanne on muuttumassa, lähdetiedosto sijaitsee sivuston juurissa ja tiedosto, johon sinun on linkitettävä, on kansiossa. Tässä tapauksessa tiedoston polku on seuraava.

Linkki

Huomaa, että kansion nimen edessä ei ole ylimääräisiä pisteitä tai kauttaviivoja.

Linkki

Jos tiedosto ei sijaitse yhdessä, vaan kahdessa kansiossa, polku siihen kirjoitetaan näin.

Linkit sivuston juureen Joskus voit löytää polun tiedostoon suhteessa sivuston juureen, se näyttää siltä"/Kansio/Tiedoston nimi" kauttaviivalla alussa. Kyllä, levy Kurssit

tarkoittaa, että linkki johtaa kurssi-nimiseen kansioon, joka sijaitsee sivuston juuressa ja josta sinun on ladattava hakemistotiedosto.

Huomaa, että tämä tallennusmuoto ei toimi paikallisella tietokoneella, vaan vain verkkopalvelimen ohjauksessa. Mikä tahansa verkkosivu, kuva, video jne. on ennen kaikkea tiedosto, jolla on omat tiedostonsa ehdoton tai suhteellinen polku (osoite). Itse tiedosto Internetissä sijaitsee tietokoneessa nimeltä palvelin

. Siksi sinun tulee harkita, kuinka tiedosto esitetään palvelimella ja Internetissä. Tässä artikkelissa haluan selventää yllä olevia kohtia ja selventää esiin tuotua kysymystä. Yritetäänkö?

Absoluuttinen polku (osoite)

Mikä on absoluuttinen polku tiedostoon? ehdoton Absoluuttinen polku osoite on koko polku tai osoite suhteessa ehdoton kotikansio palvelimella.

Internet-verkkotunnuksen nimi sanoen " kotikansio

Internet-verkkotunnuksen nimi "Tarkoitan isännöintipalveluntarjoajan myöntämän tilan alkua. Esimerkiksi, jos puhumme paikallisesta palvelimesta Windows-käyttöjärjestelmässä, asema itse toimii kotikansiona, eli C:/. Samaan aikaan isännöintipalveluntarjoaja varaa usein käyttäjälle vain tietyn virtuaalisen (ehdollisen) tilan, jonka kotikansiona toimii tietty kansio, jota usein kutsutaan nimellä /home."Tarkoitan URL-osoitetta, joka alkaa maininnalla protokollasta, esimerkiksi: http://sitename.ru/. Internetissä tämä on kunkin esitetyn resurssin kotikansio.

Kuinka selvittää palvelimen absoluuttinen polku PHP: ssä?

Jos URL-osoitteen kanssa kaikki on enemmän tai vähemmän selvää, niin palvelimen kotikansion kanssa tilanne on hieman monimutkaisempi. Loppujen lopuksi jokaisella palveluntarjoajalla on omat ongelmansa ja tämä tulee ottaa huomioon.

Aloitan siitä, että palvelimen absoluuttinen polku määräytyy yleensä sen skriptin sijainnin mukaan, jossa tämä tapahtuu. Esimerkiksi config.php-tiedosto sijaitsee sivuston juurikansiossa ja meidän on selvitettävä sen absoluuttinen polku.

Haluan selventää sanomalla " juurikansio"Tarkoitan palvelimella olevaa kansiota, joka on omistettu sivustolle. Tämä toimii URL-osoitteen aloituspisteenä suhteessa verkkotunnuksen nimeen.

Voit tehdä tämän käyttämällä vakiota __FILE__, joka sisältää sen nykyisen tiedoston täydellisen polun ja nimen, jossa sitä kutsutaan. Jos haluat saada vain koko polun ja poistaa nykyisen tiedoston nimen, voit käyttää dirname()-funktiota, joka palauttaa määritetyn polun päähakemiston. Esimerkiksi:

$abspath = dirname(__FILE__) ."/";

PHP 5.3:ssa ja uudemmissa versioissa voit jo käyttää vakiota __DIR__:

$abspath = __DIR__

Siksi on erittäin kätevää sisällyttää config.php-tiedosto tulevaisuudessa ja käyttää siinä saadun $abspath-muuttujan absoluuttista polkua lähtökohtana. Oletetaan esimerkiksi, että komentosarja testi.php sijaitsee kansiossa polku/ - ja haluttu tiedosto data.txt on kansiossa data/. Tässä tapauksessa puhelu voi näyttää tältä:

Include_once(../config.php"); $fh = fopen($abspath ."/2013/12/data/data.txt", "r");

Huomaa, että liitin config.php-tiedoston käyttämällä suhteellista polkua, mutta siitä lisää myöhemmin.

Suhteellinen polku (osoite)

Mikä on suhteellinen tiedostopolku?

Suhteellinen polku ehdoton Absoluuttinen polku on polku tai osoite suhteessa sen tiedoston sijaintiin, jossa toista tiedostoa käytetään.

Mikä tahansa tiedostojärjestelmä on tiukka ylä- ja alatason kansioiden ja tiedostojen hierarkia. Esimerkki: C:\kansio\tiedosto.php – tässä kansio\kansio on C:\-aseman ali ja tiedoston file.php-tiedoston ylätaso.

Tarkastellaanpa seuraavaa hierarkiaa selvyyden vuoksi:

  • tiedosto1.php
  • kansio\
    • tiedosto.php
    • alikansio\
      • tiedosto3.php

Päästäksemme tiedostoon C:\file2.php tiedostosta C:\kansio\tiedosto.php, meidän on poistuttava nykyisestä kansiosta\, ts. mennä yhden tason ylöspäin. Tätä varten voit käyttää, kansio (Sanoisin jopa pseudokansion) ylätason hakemisto, edustaa kahta pistettä (..) . Toisin sanoen saamme polun: ..\file2.php - suhteessa tiedostoon file.php .

Päästäksemme tiedostoon C:\folder\subfolder\file3.php tiedostosta C:\kansio\tiedosto.php, meidän on syötettävä alikansio\alikansio, ts. mene yhden tason alas. Näin saamme polun: subfolder\file3.php - suhteessa tiedostoon file.php .

Tehdään asioista monimutkaisempia ja siirrytään tiedostosta C:\folder\subfolder\file3.php tiedostoon C:\file2.php . Suhteellinen polku näyttää tältä: ..\..\file2.php - olemme nousseet kaksi tasoa korkeammalle. Toimi päinvastoin, eli tiedostosta C:\file2.php siirrytään tiedostoon C:\folder\subfolder\file3.php. Suhteellinen polku näyttää tältä: folder\subfolder\file3.php - menemme kaksi tasoa alaspäin.

Suhteellisen polun (osoitteen) edut ja haitat

Ilmeisesti suhteellinen polku ei sisällä kotikansiota ja yläkansioita. Siten lopullinen osoite on lyhyempi. Lisäksi, jos sinun on siirryttävä verkkotunnuksesta toiseen, uutta absoluuttista osoitetta ei tarvitse rekisteröidä.

Toisaalta, jos lainaamme toisen resurssin sivuston sisältöä samoilla kuvilla, joissa suhteellinen polku on määritetty, saamme virheilmoituksen, koska Kolmannen osapuolen resurssissa ei ole sivustokansioita ja tiedostoja. Tämä tapahtuu, jos sivua tarkastellaan hakukoneen välimuistissa. Suhteellisen polun käyttäminen voi jälleen tehdä virheen, mikä johtaa sivuston indeksointiongelmaan.

Yhteenvetona on huomattava, että on suositeltavaa minimoida suhteellisten polkujen tai osoitteiden käyttö ja käyttää absoluuttisia polkuja ja osoitteita.

Johtopäätös

Artikkelissani yritin pohtia perusongelmaa, joka liittyy tiedostojen ja kansioiden absoluuttisiin ja suhteellisiin polkuihin (osoitteisiin). Itse asiassa, jos työskentelet tietokoneella, sinulla on a priori jo käsitys tiedostojärjestelmästä, mutta ottamatta huomioon joitain vivahteita, on melko vaikea päästä liikkeelle ja nostaa esiin useita asioita, jotka väistämättä liittyvät oikea osoite. Se on kaikki mitä minulla on. Kiitos huomiostasi. Onnea!

klo 8.00 Muokkaa viestiä 5 kommenttia