Absolute at relatibong landas sa mga file. Absolute at relative links

Sa tutorial na ito, ipapaliwanag namin sa mga nagsisimula kung ano ang ganap at kamag-anak na landas sa isang file, at kung alin din ang mas mahusay na gamitin. Kung pamilyar ka na sa paksang ito, maaari kang magpatuloy sa susunod na aralin.

Kaya, magsimula tayo sa kahulugan ng mismong terminong "landas":

Path (Path sa Ingles) - isang hanay ng mga character na nagpapakita ng lokasyon ng file sa file system, ang address ng direktoryo.

Wikipedia

Kung pinag-uusapan natin ang tungkol sa mga site, kung gayon ang landas ay kapareho ng link. Ang mga link ay maaaring ganap o kamag-anak. Tingnan natin ang parehong mga pagpipilian nang mas detalyado.

Ano ang isang ganap na landas sa isang file

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

Maaaring gamitin ang absolute path sa CSS. Halimbawa, upang magtakda ng larawan bilang background, maaari mong dalhin ang ganap na URL sa file ng larawan AT tukuyin ito sa stylesheet:

Background-image: url(http://www.example.com/img/bg.png);

Ano ang isang kamag-anak na landas ng file

Sa isang kamag-anak na address, ang lahat ay mas kawili-wili - maaari itong mabilang pareho mula sa ugat ng site at mula sa kasalukuyang dokumento. Root relative path- ito ay isang landas na nagpapahiwatig ng lokasyon ng file na nauugnay sa root directory ng site. Sa kasong ito, ang address ay hindi naglalaman ng alinman sa isang protocol o isang domain name, at nagsisimula sa isang slash / , na nagpapahiwatig ng root folder. Mukhang ganito ang address na ito:

Background-image: url(/img/bg.png);

Paano madaling matukoy ang root relative address? Kumuha lang ng ganap na link at alisin ang protocol at domain name mula dito, na iniiwan ang slash at lahat ng mga character na kasunod nito.

Kamag-anak na landas ng file mula sa dokumento ay ang path sa file na nauugnay sa kasalukuyang dokumento. Ang address na ito ay depende sa lokasyon ng file kung saan ito nakasulat. Kaya, kapag ang isang kaugnay na link ay tinukoy sa isang stylesheet, kinakalkula nito ang path ng file batay sa stylesheet, sa halip na ang kasalukuyang web page o root folder. Magbigay tayo ng ilang halimbawa.

Halimbawa I

Kung ang aming stylesheet style.css at ang background image file na bg.png ay nasa parehong folder (hindi kinakailangang ang root), ang relatibong path mula sa talahanayan patungo sa larawan ay magiging ganito:

Background-image: url(bg.png); /* isulat mo lang ang pangalan ng file */

Halimbawa II

Kung ang stylesheet ay nasa ugat at ang imahe ay nasa img folder, ang kamag-anak na link ay magiging ganito:

Background-image: url(img/bg.png); /* hindi na kailangan ng leading slash */

Halimbawa III

Kung ang style sheet ay nasa isang folder, at ang imahe ay katabi ng folder na ito, ang kamag-anak na landas ay magiging ganito:

Background-image: url(../bg.png); /* dalawang tuldok - umakyat ng isang antas */

Halimbawa IV

Kung ang style sheet ay nasa dalawang folder, at ang imahe ay katabi ng unang folder, ang kamag-anak na landas ay ang mga sumusunod:

Background-image: url(../../bg.png); /* umakyat ng dalawang antas */

Ang dalawang tuldok at isang slash sa simula ng relatibong landas ay nangangahulugan ng pag-akyat sa isang antas. Depende sa bilang ng mga antas (mga direktoryo) kung saan kailangan mong umakyat, kailangan mong ipasok ang kinakailangang bilang ng mga tuldok na may mga slash. Halimbawa, kung ang style sheet ay hindi matatagpuan sa dalawa, ngunit sa apat na folder, ang entry, nang naaayon, ay magiging tulad ng sumusunod:

Background-image: url(../../../../bg.png);

Sa kaso kung saan ang imahe ay nakatago sa img folder, at ang style sheet ay nakatago sa css folder, kakailanganin mong lumabas sa css folder at pumunta sa img folder. ganito:

Background-image: url(../img/bg.png);

Kung mayroong ilang mga folder, dapat mo ring irehistro ang mga ito. Baguhin natin ang nakaraang halimbawa: isipin na sa folder ng img mayroong isa pang folder ng background, na naglalaman ng aming pagguhit. Ang kamag-anak na landas ay magiging ganito:

Background-image: url(../img/backgrounds/bg.png);

Aling paraan ang mas mahusay na gamitin

Ganap na link address Kakailanganin mong gamitin ito kung ang file na iyong nili-link ay nasa ibang site. Sa loob ng isang site, ang ganap na landas ay halos hindi ginagamit (bagaman ito ay gagana). Ito ay dahil sa ilang mga punto: una, ang mga link na ito ay maaaring maging napakahirap, at pangalawa, kung ang domain name ay nagbabago, isang problema ay lilitaw - lahat ng mga link ay hahantong sa lumang domain, na maaaring humantong sa maraming mga error at sirang mga link.

Root relative path ay gagana sa isang web server, ngunit hindi ito kapaki-pakinabang kapag bumubuo sa isang lokal na computer. Ngunit ang bentahe ng ganitong uri ng link ay maaari mong ilipat ang iyong style sheet sa anumang folder sa site at hindi matakot na masira ang mga URL ng larawan sa background.

Kamag-anak na landas mula sa dokumento- ang pinakamahusay na opsyon para sa web development sa isang lokal na makina nang hindi gumagamit ng server. Sa browser, magagawa mong tingnan ang mga web page na nakaimbak sa iyong computer nang normal, at gagana ang mga address ng file. Gagana sila sa isang live na site, ngunit may isang kundisyon - kung hindi mo ililipat ang style sheet sa ibang lugar (kung hindi, kailangan mong ayusin ang mga landas).

Subukang magsanay gamit ang mga kamag-anak na landas kapwa sa iyong lokal na computer at sa iyong web server. Ang pag-unawa sa kung paano ito gumagana ay tiyak na magiging kapaki-pakinabang sa iyo sa anumang proyekto.

Higit pa sa tutorial: background-repeat property - kinokontrol ang pag-uulit ng larawan sa background.

01/11/07 44.5K

Tulad ng alam mo, sa href parameter ng tag () dapat mong tukuyin ang landas sa file na tinutukoy.
Maraming tao ang sumusulat ng isang bagay tulad ng http://somesite.ru/catalog/doc.html. Oo, walang nagtatalo, gumagana ito. Ngunit mayroong isang "ngunit". Tingnan natin ang isang halimbawa.

Hayaang ma-host ang iyong site, halimbawa, sa ilang libreng pagho-host at ang address nito ay ang sumusunod: http://fsite.freehosting.ru.
Mayroong tungkol sa 100 mga dokumento sa server. At kaya nagpasya kang ilipat ang iyong website sa isa pang domain,
hayaan itong mabayaran sa pagho-host sa ru zone: http://site.ru. Well, dapat ba nating baguhin ngayon ang http://fsite.freehosting.ru sa http://site.ru kahit saan?
Oo, salamat sa mga editor tulad ng homesite, posible ito. Ngunit hindi ito solusyon.
Ipagpalagay natin na bago mag-upload ng page sa server, suriin mo ang functionality nito
sa iyong home apache server (para sa mga hindi pa nakakaalam kung ano ang "home server", pumunta dito (Pag-install at pag-configure ng isang apache server), at sa halip na http://localhost kailangan mong isulat ang http:// site.ru kahit saan Sumang-ayon dito, hindi bababa sa ito ay hindi maginhawa.

Ang solusyon ay, kapag tinukoy ang landas sa isang file, isaalang-alang hindi ang posisyon nito sa site, ngunit ang posisyon nito sa server.

Ganap na landas

Kunin natin, halimbawa, ang file na doc.html, na matatagpuan sa: http://somesite.ru/catalog/doc.html. Sa server, tulad ng alam mo, mayroong isang www folder. Tulad ng nakikita natin mula sa address, naglalaman ang folder na ito ng folder ng catalog, at naglalaman na ito ng doc.html file.

Kung, kapag tinukoy mo ang path sa isang file, inilagay mo / bago ang address, magiging katulad ito sa sumusunod: root_directory_in_the_north/www/path sa file.
Ibig sabihin, ang http://somesite.ru/catalog/doc.html ay katulad ng sumusunod: /catalog/doc.html.
Kaya, kapag mayroong isang / sa harap ng address, nangangahulugan ito na ang "countdown" ay nagsisimula mula sa direktoryo ng www.
Ngayon, sa halip na http://localhost/index.html, maaari mong isulat ang /index.html mula sa anumang dokumento.
Ngunit upang makarating sa direktoryo ng cgi kailangan mong sumulat ng ganito: /cgi-bin/path sa file.

Ang mga landas na nilikha gamit ang mga pamamaraan na inilarawan sa itaas ay tinatawag na absolute, dahil ang absolute (full) path sa file sa server ay ipinahiwatig.

Kamag-anak na landas

Mayroon ding mga kamag-anak na landas, na tinukoy na nauugnay sa mismong dokumento kung saan nagmumula ang link.
Halimbawa, kung gagawa ka ng link sa doc.html newcat/new.html, ipinahihiwatig nito na ang file na new.html ay matatagpuan sa direktoryo ng newcat, na, sa turn, ay nasa parehong direktoryo ng doc.html file. Gaya ng nakikita mo, ang path na ito ay nauugnay sa doc.html file. Saanman matatagpuan ang file na ito, ang path na newcat/new.html ay palaging magiging wasto kung ang doc.html file at ang direktoryo ng newcat ay nasa parehong antas (ibig sabihin, sa parehong direktoryo).

Maaari ka ring magtaas ng isang direktoryo na nauugnay sa isang dokumento. Upang gawin ito kailangan mong isulat ang ../.
Halimbawa, mayroong isang direktoryo na malaki, naglalaman ito ng dalawang direktoryo: pangunahin at pangalawa. Ang pangunahing direktoryo ay naglalaman ng pamilyar na doc.html file; at sa pangalawang direktoryo ay mayroong isang file na bago.html. Upang makagawa ng link mula sa doc.html file patungo sa new.html file, kailangan mong isulat ang ../secondary/new.html. Ngunit kung ang malaking direktoryo ay matatagpuan sa www na direktoryo, ang landas patungo sa new.html file ay maaaring tukuyin tulad nito: /big/secondary/new.html

Ang link address ay maaaring maging ganap o kamag-anak. Ang mga ganap na address ay dapat magsimula sa protocol (karaniwang http://) at naglalaman ng pangalan ng site.

Ang mga kamag-anak na link ay batay sa ugat ng site o kasalukuyang dokumento.

Ipinapakita ng Halimbawa 8.2 kung paano lumikha ng ganap na link sa isa pang site.

Halimbawa 8.2. Paggamit ng mga ganap na sanggunian

Ganap na address



Pag-aaral ng HTML

Kapag tinukoy mo ang isang direktoryo ng site bilang isang link (halimbawa, http://site/css/), ipapakita ang index file. Ito ang file na na-load bilang default kapag na-access ang isang direktoryo nang hindi tahasang tinukoy ang pangalan ng file. Karaniwan ang index file ay isang dokumentong pinangalanang index.html.

Ang mga ganap na link ay karaniwang ginagamit upang tumuro sa isang dokumento sa isa pang mapagkukunan ng network, gayunpaman, posible ring gumawa ng mga ganap na link sa loob ng kasalukuyang site.

Gayunpaman, hindi ito madalas na ginagawa, dahil ang mga naturang link ay medyo mahaba at masalimuot. Samakatuwid, ang mga kamag-anak na link ay pangunahing ginagamit sa loob ng site.

Mga link na nauugnay sa kasalukuyang dokumento

Kapag gumagawa ng mga kamag-anak na link, kailangan mong maunawaan kung anong halaga ang dapat mong tukuyin para sa katangiang href, dahil ito ay nakasalalay sa orihinal na lokasyon ng mga file.

Tingnan natin ang ilang karaniwang mga opsyon.

Kapag ang pinagmulang dokumento ay naka-imbak sa isang folder, at ang naka-link ay nasa ugat ng site, pagkatapos ay dalawang tuldok at isang slash (/) ang dapat ilagay sa harap ng pangalan ng file sa link address, tulad ng ipinapakita sa ibaba.

Dalawang tuldok sa kasong ito ay nangangahulugan ng pag-iwan sa kasalukuyang folder sa mas mataas na antas.

3. Ang mga file ay inilalagay sa iba't ibang mga folder (Larawan 8.6).

Ngayon ang source file ay nasa dalawang subfolder, at upang mag-link sa dokumento sa ugat ng site, kailangan mong ulitin ang nakaraang halimbawa nang dalawang beses.

Link

Ang sitwasyon ay katulad sa anumang bilang ng mga subfolder.

4. Ang mga file ay inilalagay sa iba't ibang mga folder (Larawan 8.7).

Ngayon ang sitwasyon ay nagbabago, ang source file ay matatagpuan sa root ng site, at ang file kung saan kailangan mong i-link ay nasa folder. Sa kasong ito, ang landas patungo sa file ay ang mga sumusunod.

Link

Tandaan na walang karagdagang mga tuldok o slash bago ang pangalan ng folder.

Link

Kung ang file ay matatagpuan sa loob ng hindi isa, ngunit dalawang folder, kung gayon ang landas patungo dito ay nakasulat tulad nito.

Mga link na nauugnay sa ugat ng site Minsan maaari mong mahanap ang landas sa file na may kaugnayan sa ugat ng site, mukhang"/Folder/Pangalan ng file" na may slash sa simula. Oo, i-record Mga kurso

nangangahulugan na ang link ay humahantong sa isang folder na pinangalanang kurso, na matatagpuan sa ugat ng site, at dito kailangan mong i-download ang index file.

Ang link address ay maaaring maging ganap o kamag-anak. Ang mga ganap na address ay dapat magsimula sa protocol (karaniwang http://) at naglalaman ng pangalan ng site.

Ang mga kamag-anak na link ay batay sa ugat ng site o kasalukuyang dokumento.

Ipinapakita ng Halimbawa 8.2 kung paano lumikha ng ganap na link sa isa pang site.

Halimbawa 8.2. Paggamit ng mga ganap na sanggunian

Ganap na address



Pag-aaral ng HTML

Kapag tinukoy mo ang isang direktoryo ng site bilang isang link (halimbawa, http://site/css/), ipapakita ang index file. Ito ang file na na-load bilang default kapag na-access ang isang direktoryo nang hindi tahasang tinukoy ang pangalan ng file. Karaniwan ang index file ay isang dokumentong pinangalanang index.html.

Ang mga ganap na link ay karaniwang ginagamit upang tumuro sa isang dokumento sa isa pang mapagkukunan ng network, gayunpaman, posible ring gumawa ng mga ganap na link sa loob ng kasalukuyang site.

Gayunpaman, hindi ito madalas na ginagawa, dahil ang mga naturang link ay medyo mahaba at masalimuot. Samakatuwid, ang mga kamag-anak na link ay pangunahing ginagamit sa loob ng site.

Mga link na nauugnay sa kasalukuyang dokumento

Kapag gumagawa ng mga kamag-anak na link, kailangan mong maunawaan kung anong halaga ang dapat mong tukuyin para sa katangiang href, dahil ito ay nakasalalay sa orihinal na lokasyon ng mga file.

Tingnan natin ang ilang karaniwang mga opsyon.

Kapag ang pinagmulang dokumento ay naka-imbak sa isang folder, at ang naka-link ay nasa ugat ng site, pagkatapos ay dalawang tuldok at isang slash (/) ang dapat ilagay sa harap ng pangalan ng file sa link address, tulad ng ipinapakita sa ibaba.

Dalawang tuldok sa kasong ito ay nangangahulugan ng pag-iwan sa kasalukuyang folder sa mas mataas na antas.

3. Ang mga file ay inilalagay sa iba't ibang mga folder (Larawan 8.6).

Ngayon ang source file ay nasa dalawang subfolder, at upang mag-link sa dokumento sa ugat ng site, kailangan mong ulitin ang nakaraang halimbawa nang dalawang beses.

Link

Ang sitwasyon ay katulad sa anumang bilang ng mga subfolder.

4. Ang mga file ay inilalagay sa iba't ibang mga folder (Larawan 8.7).

Ngayon ang sitwasyon ay nagbabago, ang source file ay matatagpuan sa root ng site, at ang file kung saan kailangan mong i-link ay nasa folder. Sa kasong ito, ang landas patungo sa file ay ang mga sumusunod.

Link

Tandaan na walang karagdagang mga tuldok o slash bago ang pangalan ng folder.

Link

Kung ang file ay matatagpuan sa loob ng hindi isa, ngunit dalawang folder, kung gayon ang landas patungo dito ay nakasulat tulad nito.

Mga link na nauugnay sa ugat ng site Minsan maaari mong mahanap ang landas sa file na may kaugnayan sa ugat ng site, mukhang"/Folder/Pangalan ng file" na may slash sa simula. Oo, i-record Mga kurso

nangangahulugan na ang link ay humahantong sa isang folder na pinangalanang kurso, na matatagpuan sa ugat ng site, at dito kailangan mong i-download ang index file.

Pakitandaan na ang paraan ng pag-record na ito ay hindi gumagana sa isang lokal na computer, ngunit sa ilalim lamang ng kontrol ng isang web server. Anumang web page, larawan, video, atbp. ay, una sa lahat, isang file na may sarili nitong ganap o kamag-anak landas (address). Ang file mismo sa Internet ay matatagpuan sa isang computer na tinatawag na server

. Kaya, dapat mong isaalang-alang kung paano ipinakita ang file sa server at sa Internet. Sa artikulong ito nais kong linawin ang mga punto sa itaas at linawin ang isyung ibinangon. Subukan natin?

Ganap na landas (address)

Ano ang isang ganap na landas sa isang file? ganap Ganap na landas address ay ang buong landas o address, na nauugnay sa ganap home folder sa server.

Pangalan ng domain sa internet sinasabi" folder ng bahay

Pangalan ng domain sa internet "Ang ibig kong sabihin ay ang simula ng puwang na inilaan ng hosting provider. Halimbawa, kung pinag-uusapan natin ang tungkol sa isang lokal na server sa operating system ng Windows, ang drive mismo ay magsisilbing home folder, ibig sabihin, C:/. Kasabay nito, kadalasan ang hosting provider ay naglalaan lamang sa user ng isang partikular na virtual (kondisyon) na espasyo, kung saan ang isang partikular na folder, madalas na tinatawag na /home, ay nagsisilbing home folder."Ang ibig kong sabihin ay isang URL na nagsisimula sa pagbanggit ng protocol, halimbawa: http://sitename.ru/. Sa Internet, ito ang home folder para sa bawat isa sa mga ipinakitang mapagkukunan.

Paano malalaman ang ganap na landas sa server sa PHP?

Kung ang lahat ay higit pa o hindi gaanong malinaw sa URL address, pagkatapos ay sa home folder sa server ang sitwasyon ay medyo mas kumplikado. Sa huli, ang bawat provider ay may sariling mga problema at dapat itong isaalang-alang.

Hayaan akong magsimula sa katotohanan na ang ganap na landas sa server ay karaniwang tinutukoy na may kaugnayan sa lokasyon ng script kung saan ito nangyayari. Halimbawa, ang config.php file ay matatagpuan sa root folder ng site at kailangan nating malaman ang ganap na landas patungo dito.

Hayaan akong linawin sa pagsasabing " root folder"Ang ibig kong sabihin ay isang folder sa server na nakatuon sa site. Ito ang nagsisilbing panimulang punto ng URL kaugnay ng domain name.

Upang gawin ito, maaari mong gamitin ang __FILE__ constant, na naglalaman ng buong path at pangalan ng kasalukuyang file kung saan ito tinawag. Upang makuha lamang ang buong path at alisin ang pangalan ng kasalukuyang file, maaari mong gamitin ang dirname() function, na nagbabalik ng parent directory ng tinukoy na path. Halimbawa:

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

Sa PHP 5.3 at mas bago, magagamit mo na ang __DIR__ constant:

$abspath = __DIR__

Kaya, napakaginhawang isama ang config.php file sa hinaharap at gamitin ang absolute path ng $abspath variable na nakuha dito bilang panimulang punto. Halimbawa, ipagpalagay na ang script test.php ay matatagpuan sa folder: path/ - at ang gustong file na data.txt ay nasa folder: data/. Sa kasong ito, ang tawag ay maaaring magmukhang:

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

Pakitandaan na ikinonekta ko ang config.php file gamit ang isang kamag-anak na landas, ngunit higit pa doon sa ibang pagkakataon.

Kaugnay na landas (address)

Ano ang isang kamag-anak na landas ng file?

Kamag-anak na landas ganap Ganap na landas ay isang path o address na nauugnay sa lokasyon ng file kung saan na-access ang isa pang file.

Ang anumang file system ay isang mahigpit na hierarchy ng mga folder at file ng magulang at anak. Halimbawa: C:\folder\file.php – dito ang folder\ folder ay anak ng C:\ drive at magulang ng file file.php file.

Para sa kalinawan, isaalang-alang natin ang sumusunod na hierarchy:

  • file1.php
  • folder\
    • file.php
    • subfolder\
      • file3.php

Upang ma-access ang file C:\file2.php mula sa file C:\folder\file.php, kailangan naming lumabas sa kasalukuyang folder folder\, i.e. umakyat ng isang antas. Para dito maaari mong gamitin, folder (Sasabihin ko pa nga pseudo-folder) direktoryo ng magulang, na kumakatawan sa dalawang tuldok (..) . Sa madaling salita, makukuha natin ang landas: ..\file2.php - relative to the file file.php .

Upang ma-access ang file C:\folder\subfolder\file3.php mula sa file C:\folder\file.php, kailangan nating ilagay ang subfolder\ subfolder, i.e. bumaba ng isang antas. Sa ganitong paraan makukuha natin ang landas: subfolder\file3.php - kaugnay ng file file.php .

Gawin nating mas kumplikado ang mga bagay at pumunta mula sa file C:\folder\subfolder\file3.php hanggang sa file C:\file2.php . Ang kamag-anak na landas ay magmumukhang: ..\..\file2.php - napunta kami sa dalawang antas na mas mataas. Gawin ang kabaligtaran, ibig sabihin, mula sa file na C:\file2.php ay bumaling tayo sa file na C:\folder\subfolder\file3.php. Ang kamag-anak na landas ay magmumukhang: folder\subfolder\file3.php - bababa tayo ng dalawang antas.

Mga kalamangan at kawalan ng kamag-anak na landas (address)

Malinaw, ang kamag-anak na landas ay hindi naglalaman ng folder ng tahanan at mga folder ng magulang. Kaya, ang huling address ay mas maikli. Bukod dito, kung kailangan mong lumipat mula sa isang domain patungo sa isa pa, hindi na kailangang magrehistro ng bagong ganap na address.

Sa kabilang banda, kung sinipi namin ang nilalaman ng isang site sa isa pang mapagkukunan, na may parehong mga larawan kung saan tinukoy ang kamag-anak na landas, makakatanggap kami ng isang error, dahil Walang mga folder at file ng site sa mapagkukunan ng third-party. Mangyayari ito kung titingnan ang pahina sa cache ng search engine. Muli, ang paggamit ng kamag-anak na landas ay madaling magkamali, na magreresulta sa problema sa pag-index ng site.

Upang buod, dapat tandaan na ipinapayong bawasan ang paggamit ng mga kamag-anak na landas o address at gumamit ng ganap na mga landas at address.

Konklusyon

Sa aking artikulo, sinubukan kong isaalang-alang ang pangunahing isyu na may kaugnayan sa ganap at kamag-anak na mga landas (mga address) sa mga file at folder. Sa katunayan, kung nagtatrabaho ka sa isang computer, pagkatapos ay isang priori mayroon ka nang ideya tungkol sa file system, ngunit nang hindi isinasaalang-alang ang ilang mga nuances, medyo mahirap na bumaba sa lupa at itaas ang isang bilang ng mga isyu na hindi maiiwasang nauugnay sa tamang addressing. Yun lang ang meron ako. Salamat sa iyong pansin. Good luck!

sa 8:00 I-edit ang mensahe 5 komento