Failide absoluutne ja suhteline tee. Absoluutsed ja suhtelised lingid

Selles õpetuses selgitame algajatele, mis on faili absoluutne ja suhteline tee ning millisel juhul on parem kasutada. Kui olete selle teemaga juba tuttav, võite liikuda järgmise õppetüki juurde.

Niisiis, alustame mõiste "tee" määratlusega:

Path (inglise path) - märkide kogum, mis näitab faili asukohta failisüsteemis, kataloogi aadressi.

Vikipeedia

Kui me räägime saitidest, siis tee on sama, mis link. Lingid võivad olla absoluutsed või suhtelised. Vaatame mõlemat võimalust üksikasjalikumalt.

Mis on faili absoluutne tee

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

CSS-is saab kasutada absoluutset teed. Näiteks pildi taustaks määramiseks võite võtta pildifaili absoluutse URL-i JA määrata selle stiilitabelil:

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

Mis on suhteline failitee

Suhtelise aadressiga on kõik palju huvitavam - seda saab lugeda nii saidi juurtest kui ka praegusest dokumendist. Juure suhteline tee- see on tee, mis näitab faili asukohta saidi juurkataloogi suhtes. Sel juhul ei sisalda aadress ei protokolli ega domeeninime ning algab kaldkriipsuga / , mis näitab juurkausta. See aadress näeb välja selline:

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

Kuidas hõlpsalt kindlaks määrata suhtelise juuraadressi? Võtke lihtsalt absoluutne link ja eemaldage sellelt protokoll ja domeeninimi, jättes alles kaldkriipsu ja kõik järgnevad märgid.

Suhteline failitee dokumendist on faili tee praeguse dokumendi suhtes. See aadress sõltub selle faili asukohast, kuhu see on salvestatud. Seega, kui laaditabelil on määratud suhteline link, arvutab see failitee laaditabeli, mitte praeguse veebilehe või juurkausta alusel. Toome paar näidet.

Näide I

Kui meie stiilitabel style.css ja taustapildi fail bg.png on samas kaustas (mitte tingimata juur), siis näeb suhteline tee tabelist pildini välja järgmine:

Taustapilt: url(bg.png); /* kirjutad lihtsalt faili nime */

Näide II

Kui laaditabel asub juurfailis ja pilt on kaustas img, on suhteline link järgmine:

Taustapilt: url(img/bg.png); /* kaldkriipsu pole vaja */

Näide III

Kui stiilileht on kaustas ja pilt on selle kausta kõrval, on suhteline tee järgmine:

Taustapilt: url(../bg.png); /* kaks punkti – mine ühe taseme võrra üles */

Näide IV

Kui stiilileht on kahes kaustas ja joonis külgneb esimese kaustaga, on suhteline tee järgmine:

Taustapilt: url(../../bg.png); /* tõuse kaks taset üles */

Kaks punkti ja kaldkriips suhtelise tee alguses tähendavad ühe taseme võrra kõrgemale minemist. Sõltuvalt tasemete (kataloogide) arvust, kuhu peate ronima, peate sisestama vajaliku arvu punkte kaldkriipsudega. Näiteks kui stiilileht ei asu mitte kahes, vaid neljas kaustas, on kirje vastavalt järgmine:

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

Kui pilt on peidetud kausta img ja stiilileht on peidetud kaustas css, peate css-kaustast väljuma ja minema img-kausta. nagu see:

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

Kui kaustu on mitu, tuleb need ka registreerida. Muudame eelmist näidet: kujutage ette, et kaustas img on veel üks taustade kaust, mis sisaldab meie joonist. Suhteline tee oleks järgmine:

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

Millist teed on parem kasutada

Absoluutne lingi aadress Peate seda kasutama, kui fail, millele lingite, asub teisel saidil. Ühe saidi piires absoluutset teed praktiliselt ei kasutata (kuigi see töötab). See on tingitud mitmest punktist: esiteks võivad sellised lingid olla väga tülikad ja teiseks, kui domeeni nimi muutub, tekib probleem – kõik lingid viivad vanale domeenile, mis võib kaasa tuua palju vigu ja katkiseid linke.

Juure suhteline tee töötab veebiserveris, kuid kohalikus arvutis arendamisel pole see kasulik. Kuid seda tüüpi linkide eeliseks on see, et saate oma stiililehe teisaldada saidi mis tahes kausta ja mitte karta taustapiltide URL-ide purunemist.

Suhteline tee dokumendist- parim võimalus veebiarenduseks kohalikus masinas ilma serverit kasutamata. Brauseris saate oma arvutisse salvestatud veebilehti tavapäraselt vaadata ja failiaadressid töötavad. Need töötavad reaalajas saidil, kuid ühe tingimusega - kui te ei vii stiililehte teise kohta (muidu peate teid kohandama).

Proovige harjutada suhteliste teede kasutamist nii kohalikus arvutis kui ka veebiserveris. Selle toimimise mõistmine on teile kindlasti kasulik igas projektis.

Edasi õpetuses: background-repeat omadus – juhib taustapildi kordumist.

11.01.2007 44,5K

Nagu teate, on sildi parameetris href () peate määrama viidatava faili tee.
Paljud inimesed kirjutavad midagi sellist nagu http://somesite.ru/catalog/doc.html. Jah, keegi ei vaidle vastu, see toimib. Kuid on üks "aga". Vaatame näidet.

Laske oma saiti majutada näiteks mõnes tasuta hostimises ja selle aadress oli järgmine: http://fsite.freehosting.ru.
Serveris on umbes 100 dokumenti. Nii et otsustate oma veebisaidi teisele domeenile teisaldada,
olgu see tasuline hostimine ru tsoonis: http://site.ru. Noh, kas me peaksime nüüd kõikjal http://fsite.freehosting.ru muutma aadressile http://site.ru?
Jah, tänu sellistele toimetajatele nagu koduleht, on see võimalik. Kuid see pole lahendus.
Oletame, et enne lehe serverisse laadimist kontrollite selle funktsionaalsust
oma koduses apache-serveris (neile, kes veel ei tea, mis on "koduserver", minge siia (Apache-serveri installimine ja konfigureerimine) ja http://localhost asemel peate kirjutama http:// site.ru igal pool nõus sellega, see on vähemalt ebamugav.

Lahendus on faili tee määramisel võtta arvesse mitte selle asukohta saidil, vaid selle asukohta serveris.

Absoluutne tee

Võtame näiteks faili doc.html, mis asub aadressil: http://somesite.ru/catalog/doc.html. Nagu teate, on serveris kaust www. Nagu aadressist näeme, sisaldab see kaust kataloogi kausta ja see sisaldab juba faili doc.html.

Kui faili tee määramisel asetate aadressi ette /, sarnaneb see järgmisega: juurkataloog_põhjas/www/faili tee.
See tähendab, et http://somesite.ru/catalog/doc.html on sarnane järgmisega: /catalog/doc.html.
Seega, kui aadressi ees on /, tähendab see, et "tagasiloendus" algab www kataloogist.
Nüüd saate http://localhost/index.html asemel kirjutada /index.html mis tahes dokumendist.
Kuid cgi kataloogi jõudmiseks peate kirjutama järgmiselt: /cgi-bin/faili tee.

Ülalkirjeldatud meetoditega loodud teid nimetatakse absoluutseks, kuna näidatakse serveris oleva faili absoluutne (täielik) tee.

Suhteline tee

Samuti on suhtelised teed, mis on määratud selle dokumendi enda suhtes, millest link pärineb.
Näiteks kui loote lingi failis doc.html newcat/new.html, tähendab see, et fail new.html asub newcati kataloogis, mis omakorda asub failiga doc.html samas kataloogis. Nagu näete, on see tee faili doc.html suhtes suhteline. Ükskõik, kus see fail asub, on tee newcat/new.html alati kehtiv, kui fail doc.html ja kataloog newcat on samal tasemel (st samas kataloogis).

Samuti saate dokumendi suhtes kataloogi ülespoole liikuda. Selleks tuleb kirjutada ../.
Näiteks on suur kataloog, see sisaldab kahte kataloogi: esmane ja sekundaarne. Esmane kataloog sisaldab juba tuttavat faili doc.html; ja teiseses kataloogis on fail new.html. Et luua link failist doc.html faili new.html, tuleb kirjutada ../secondary/new.html. Aga kui suur kataloog asub www kataloogis, siis saab faili new.html tee määrata järgmiselt: /big/secondary/new.html

Lingi aadress võib olla kas absoluutne või suhteline. Absoluutsed aadressid peavad algama protokolliga (tavaliselt http://) ja sisaldama saidi nime.

Suhtelised lingid põhinevad saidi või praeguse dokumendi juurtel.

Näide 8.2 näitab, kuidas luua absoluutne link teisele saidile.

Näide 8.2. Absoluutsete viidete kasutamine

Absoluutne aadress



HTML-i õppimine

Kui määrate lingina saidikataloogi (näiteks http://site/css/), kuvatakse registrifail. See on fail, mis laaditakse vaikimisi, kui kataloogi avatakse ilma failinime selgesõnaliselt määramata. Tavaliselt on registrifail dokument nimega index.html.

Absoluutlinke kasutatakse tavaliselt mõnel muul võrguressursil olevale dokumendile osutamiseks, kuid praeguse saidi sees on võimalik teha ka absoluutseid linke.

Seda aga sageli ei kasutata, kuna sellised lingid on üsna pikad ja tülikad. Seetõttu kasutatakse saidil valdavalt suhtelisi linke.

Praeguse dokumendiga seotud lingid

Suhteliste linkide loomisel peate mõistma, millise väärtuse peaksite atribuudile href määrama, kuna see sõltub failide algsest asukohast.

Vaatame mõnda tüüpilist võimalust.

Kui lähtedokument on salvestatud ühte kausta ja lingitud üksus asub saidi juurtes, tuleks lingi aadressi failinime ette asetada kaks punkti ja kaldkriips (/), nagu allpool näidatud.

Kaks punkti tähendab antud juhul praeguse kausta jätmist kõrgemale tasemele.

3. Failid paigutatakse erinevatesse kaustadesse (joonis 8.6).

Nüüd on lähtefail kahes alamkaustas ja saidi juurtes oleva dokumendi linkimiseks peate eelmist näidet kaks korda kordama.

Link

Sarnane on olukord suvalise arvu alamkaustadega.

4. Failid paigutatakse erinevatesse kaustadesse (joonis 8.7).

Nüüd on olukord muutumas, lähtefail asub saidi juurtes ja fail, millele peate linkima, on kaustas. Sel juhul on faili tee järgmine.

Link

Pange tähele, et kausta nime ees ei ole täiendavaid punkte ega kaldkriipse.

Link

Kui fail asub mitte ühes, vaid kahes kaustas, kirjutatakse selle tee nii.

Lingid saidi juurega Mõnikord leiate faili tee saidi juure suhtes, see näeb välja selline"/Kaust/faili nimi" kaldkriipsuga alguses. Jah, rekord Kursused

tähendab, et link viib kausta nimega kursus, mis asub saidi juurtes ja sinna tuleb alla laadida registrifail.

Lingi aadress võib olla kas absoluutne või suhteline. Absoluutsed aadressid peavad algama protokolliga (tavaliselt http://) ja sisaldama saidi nime.

Suhtelised lingid põhinevad saidi või praeguse dokumendi juurtel.

Näide 8.2 näitab, kuidas luua absoluutne link teisele saidile.

Näide 8.2. Absoluutsete viidete kasutamine

Absoluutne aadress



HTML-i õppimine

Kui määrate lingina saidikataloogi (näiteks http://site/css/), kuvatakse registrifail. See on fail, mis laaditakse vaikimisi, kui kataloogi avatakse ilma failinime selgesõnaliselt määramata. Tavaliselt on registrifail dokument nimega index.html.

Absoluutlinke kasutatakse tavaliselt mõnel muul võrguressursil olevale dokumendile osutamiseks, kuid praeguse saidi sees on võimalik teha ka absoluutseid linke.

Seda aga sageli ei kasutata, kuna sellised lingid on üsna pikad ja tülikad. Seetõttu kasutatakse saidil valdavalt suhtelisi linke.

Praeguse dokumendiga seotud lingid

Suhteliste linkide loomisel peate mõistma, millise väärtuse peaksite atribuudile href määrama, kuna see sõltub failide algsest asukohast.

Vaatame mõnda tüüpilist võimalust.

Kui lähtedokument on salvestatud ühte kausta ja lingitud üksus asub saidi juurtes, tuleks lingi aadressi failinime ette asetada kaks punkti ja kaldkriips (/), nagu allpool näidatud.

Kaks punkti tähendab antud juhul praeguse kausta jätmist kõrgemale tasemele.

3. Failid paigutatakse erinevatesse kaustadesse (joonis 8.6).

Nüüd on lähtefail kahes alamkaustas ja saidi juurtes oleva dokumendi linkimiseks peate eelmist näidet kaks korda kordama.

Link

Sarnane on olukord suvalise arvu alamkaustadega.

4. Failid paigutatakse erinevatesse kaustadesse (joonis 8.7).

Nüüd on olukord muutumas, lähtefail asub saidi juurtes ja fail, millele peate linkima, on kaustas. Sel juhul on faili tee järgmine.

Link

Pange tähele, et kausta nime ees ei ole täiendavaid punkte ega kaldkriipse.

Link

Kui fail asub mitte ühes, vaid kahes kaustas, kirjutatakse selle tee nii.

Lingid saidi juurega Mõnikord leiate faili tee saidi juure suhtes, see näeb välja selline"/Kaust/faili nimi" kaldkriipsuga alguses. Jah, rekord Kursused

tähendab, et link viib kausta nimega kursus, mis asub saidi juurtes ja sinna tuleb alla laadida registrifail.

Pange tähele, et see salvestusviis ei tööta kohalikus arvutis, vaid ainult veebiserveri kontrolli all. Iga veebileht, pilt, video jne on ennekõike fail, millel on oma absoluutne või sugulane tee (aadress). Fail ise Internetis asub arvutis nimega server

. Seetõttu peaksite kaaluma, kuidas faili serveris ja Internetis esitatakse. Selles artiklis tahaksin selgitada ülaltoodud punkte ja tõstatatud probleemi. Kas proovime?

Absoluutne tee (aadress)

Mis on faili absoluutne tee? absoluutne Absoluutne tee aadress on täielik tee või aadress, suhteline absoluutne serveri kodukaust.

Interneti domeeninimi Öeldes " kodukaust

Interneti domeeninimi "Ma pean silmas hostiteenuse pakkuja poolt eraldatud ruumi algust. Näiteks kui me räägime Windowsi operatsioonisüsteemi kohalikust serverist, toimib draiv ise kodukaustana, st C:/. Samal ajal eraldab hostiteenuse pakkuja kasutajale sageli ainult teatud virtuaalse (tingimusliku) ruumi, mille kodukaustavana toimib teatud kaust, mida sageli nimetatakse /home."Ma mõtlen URL-i, mis algab protokolli mainimisega, näiteks: http://sitename.ru/. Internetis on see iga esitatud ressursi kodukaust.

Kuidas PHP-s serveri absoluutset teed teada saada?

Kui URL-aadressiga on kõik enam-vähem selge, siis serveri kodukaustaga on olukord mõnevõrra keerulisem. Lõpuks on igal pakkujal oma probleemid ja sellega tuleks arvestada.

Lubage mul alustada sellest, et serveri absoluutne tee määratakse tavaliselt selle skripti asukoha järgi, milles see juhtub. Näiteks fail config.php asub saidi juurkaustas ja me peame välja selgitama selle absoluutse tee.

Lubage mul selgitada, öeldes: " juurkaust"Ma pean silmas saidile pühendatud kausta serveris. See on URL-i lähtepunkt domeeninime suhtes.

Selleks saate kasutada konstanti __FILE__, mis sisaldab aktiivse faili täielikku asukohta ja nime, milles seda kutsutakse. Ainult täieliku tee hankimiseks ja aktiivse faili nime eemaldamiseks võite kasutada funktsiooni dirname(), mis tagastab määratud tee emakataloogi. Näiteks:

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

PHP 5.3 ja uuemates versioonides saate juba kasutada konstanti __DIR__:

$abspath = __DIR__

Seega on väga mugav kaasata edaspidi fail config.php ja kasutada lähtepunktina selles saadud muutuja $abspath absoluutset teed. Oletame näiteks, et skript test.php asub kaustas: path/ - ja soovitud fail data.txt on kaustas: data/. Sel juhul võib kõne välja näha järgmine:

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

Pange tähele, et ühendasin faili config.php suhtelise tee abil, kuid sellest lähemalt hiljem.

Suhteline tee (aadress)

Mis on suhteline failitee?

Suhteline tee absoluutne Absoluutne tee on tee või aadress, mis on seotud selle faili asukohaga, milles teisele failile juurde pääseb.

Iga failisüsteem on vanema- ja alamkaustade ning failide range hierarhia. Näiteks: C:\kaust\fail.php – siin on kaust\kaust draivi C:\ alam ja faili fail.php faili vanem.

Selguse huvides vaatleme järgmist hierarhiat:

  • fail1.php
  • kaust\
    • fail.php
    • alamkaust\
      • fail3.php

Faili C:\file2.php pääsemiseks failist C:\kaust\file.php peame väljuma aktiivsest kaustast\ , s.t. tõuse ühe taseme võrra. Selleks võite kasutada, kausta (Ma ütleks isegi pseudokaust) emakataloog, mis tähistab kahte punkti (..) . Teisisõnu saame tee: ..\file2.php - faili fail.php suhtes.

Selleks, et failist C:\kaust\fail.php pääseda ligi failile C:\kaust\alamkaust\fail3.php, peame sisestama alamkausta\ alamkausta, st. mine ühe taseme võrra alla. Nii saame tee: alamkaust\file3.php - suhteline failiga file.php .

Teeme asja keerulisemaks ja läheme failist C:\kaust\alamkaust\file3.php faili C:\file2.php . Suhteline tee näeb välja selline: ..\..\file2.php – oleme tõusnud kaks taset kõrgemale. Tee vastupidi, st failist C:\file2.php pöördume faili C:\folder\subfolder\file3.php. Suhteline tee näeb välja selline: kaust\alamkaust\file3.php – me läheme kaks taset allapoole.

Suhtelise tee (aadressi) eelised ja puudused

Ilmselgelt ei sisalda suhteline tee kodukausta ja ülemkaustu. Seega on lõplik aadress lühem. Veelgi enam, kui teil on vaja ühest domeenist teise kolida, pole vaja uut absoluutaadressi registreerida.

Teisest küljest, kui tsiteerime mõne muu ressursi saidi sisu samade piltidega, millel on määratud suhteline tee, saame veateate, kuna Kolmanda osapoole ressursil pole saidi kaustu ega faile. See juhtub siis, kui lehte vaadatakse otsingumootori vahemälus. Jällegi, suhtelise tee kasutamine võib kergesti teha vea, mille tulemuseks on saidi indekseerimise probleem.

Kokkuvõtteks tuleb märkida, et suhteliste teede või aadresside kasutamine on soovitatav minimeerida ning kasutada absoluutseid teid ja aadresse.

Järeldus

Oma artiklis püüdsin käsitleda põhiprobleemi, mis on seotud failide ja kaustade absoluutsete ja suhteliste teede (aadressidega). Tegelikult on nii, et kui töötate arvutiga, siis on teil failisüsteemist a priori juba ettekujutus, kuid mõningaid nüansse arvesse võtmata on üsna raske maast lahti saada ja tõstatada mitmeid probleeme, mis paratamatult on seotud õige adresseerimine. See on kõik, mis mul on. Tänan tähelepanu eest. Palju õnne!

kell 8:00 Redigeeri sõnumit 5 kommentaari