Laluan mutlak dan relatif kepada fail. Pautan mutlak dan relatif

Dalam tutorial ini, kami akan menerangkan kepada pemula tentang laluan mutlak dan relatif kepada fail, dan juga dalam kes mana yang lebih baik untuk digunakan. Jika anda sudah biasa dengan topik ini, anda boleh meneruskan ke pelajaran seterusnya.

Jadi, mari kita mulakan dengan takrifan istilah "jalan" itu sendiri:

Laluan (laluan bahasa Inggeris) - satu set aksara yang menunjukkan lokasi fail dalam sistem fail, alamat direktori.

Wikipedia

Jika kita bercakap tentang tapak, maka laluannya adalah sama dengan pautan. Pautan boleh menjadi mutlak atau relatif. Mari lihat kedua-dua pilihan dengan lebih terperinci.

Apakah laluan mutlak ke fail

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

Laluan mutlak boleh digunakan dalam CSS. Sebagai contoh, untuk menetapkan imej sebagai latar belakang, anda boleh membawa URL mutlak ke fail imej DAN menentukannya dalam lembaran gaya:

Imej latar belakang: url(http://www.example.com/img/bg.png);

Apakah laluan fail relatif

Dengan alamat relatif, semuanya jauh lebih menarik - ia boleh dikira baik dari akar tapak dan dari dokumen semasa. Laluan relatif akar- ini adalah laluan yang menunjukkan lokasi fail berbanding dengan direktori akar tapak. Dalam kes ini, alamat tidak mengandungi protokol mahupun nama domain, dan bermula dengan garis miring / , yang menunjukkan folder akar. Alamat ini kelihatan seperti ini:

Imej latar belakang: url(/img/bg.png);

Bagaimana untuk menentukan alamat relatif akar dengan mudah? Hanya ambil pautan mutlak dan alih keluar protokol dan nama domain daripadanya, tinggalkan garis miring dan semua aksara yang datang selepas itu.

Laluan fail relatif daripada dokumen ialah laluan ke fail berbanding dengan dokumen semasa. Alamat ini bergantung pada lokasi fail di mana ia direkodkan. Jadi, apabila pautan relatif ditentukan dalam lembaran gaya, ia mengira laluan fail berdasarkan lembaran gaya, bukannya halaman web atau folder akar semasa. Mari kita berikan beberapa contoh.

Contoh I

Jika style.css stylesheet kami dan fail imej latar belakang bg.png berada dalam folder yang sama (tidak semestinya root), maka laluan relatif dari jadual ke imej akan kelihatan seperti ini:

Imej latar belakang: url(bg.png); /* anda hanya tulis nama fail */

Contoh II

Jika lembaran gaya berada dalam akar dan imej berada dalam folder img, pautan relatif akan menjadi seperti ini:

Imej latar belakang: url(img/bg.png); /* tidak perlu tanda miring utama */

Contoh III

Jika helaian gaya berada dalam folder, dan imej bersebelahan dengan folder ini, maka laluan relatif akan menjadi seperti ini:

Imej latar belakang: url(../bg.png); /* dua titik - naik satu tingkat */

Contoh IV

Jika helaian gaya berada dalam dua folder, dan lukisan itu bersebelahan dengan folder pertama, maka laluan relatif adalah seperti berikut:

Imej latar belakang: url(../../bg.png); /* naik dua tingkat */

Dua titik dan garis miring pada permulaan laluan relatif bermakna naik satu tahap. Bergantung pada bilangan tahap (direktori) yang perlu anda panjat, anda perlu memasukkan bilangan titik yang diperlukan dengan garis miring. Sebagai contoh, jika helaian gaya terletak bukan dalam dua, tetapi dalam empat folder, entri itu, sewajarnya, adalah seperti berikut:

Imej latar belakang: url(../../../../bg.png);

Dalam kes di mana imej disembunyikan dalam folder img, dan helaian gaya disembunyikan dalam folder css, anda perlu keluar dari folder css dan pergi ke folder img. seperti ini:

Imej latar belakang: url(../img/bg.png);

Jika terdapat beberapa folder, anda juga mesti mendaftarkannya. Mari kita ubah contoh sebelumnya: bayangkan bahawa dalam folder img terdapat folder latar belakang lain, yang mengandungi lukisan kami. Laluan relatif adalah seperti ini:

Imej latar belakang: url(../img/backgrounds/bg.png);

Cara mana yang lebih baik untuk digunakan

Alamat pautan mutlak Anda perlu menggunakannya jika fail yang anda pautkan berada di tapak lain. Dalam satu tapak, laluan mutlak boleh dikatakan tidak digunakan (walaupun ia akan berfungsi). Ini disebabkan oleh beberapa perkara: pertama, pautan sedemikian boleh menjadi sangat rumit, dan kedua, jika nama domain berubah, masalah akan timbul - semua pautan akan membawa kepada domain lama, yang boleh membawa kepada banyak ralat dan pautan rosak.

Laluan relatif akar akan berfungsi pada pelayan web, tetapi ia tidak berguna apabila membangun pada komputer tempatan. Tetapi kelebihan pautan jenis ini ialah anda boleh mengalihkan helaian gaya anda ke mana-mana folder di tapak dan tidak takut URL imej latar belakang menjadi rosak.

Laluan relatif daripada dokumen- pilihan terbaik untuk pembangunan web pada mesin tempatan tanpa menggunakan pelayan. Dalam penyemak imbas, anda akan dapat melihat halaman web yang disimpan pada komputer anda seperti biasa, dan alamat fail akan berfungsi. Mereka akan berfungsi di tapak langsung, tetapi dengan satu syarat - jika anda tidak mengalihkan helaian gaya ke tempat lain (jika tidak, anda perlu melaraskan laluan).

Cuba berlatih menggunakan laluan relatif pada komputer tempatan anda dan pada pelayan web anda. Memahami cara ini berfungsi pastinya berguna kepada anda dalam mana-mana projek.

Selanjutnya dalam tutorial: background-repeat property - mengawal pengulangan imej latar belakang.

01/11/07 44.5K

Seperti yang anda ketahui, dalam parameter href bagi teg () anda mesti menentukan laluan ke fail yang dirujuk.
Ramai orang menulis sesuatu seperti http://somesite.ru/catalog/doc.html. Ya, tiada siapa yang membantah, ia berkesan. Tetapi ada satu "tetapi". Mari kita lihat satu contoh.

Biarkan tapak anda dihoskan, sebagai contoh, pada beberapa pengehosan percuma dan alamatnya adalah seperti berikut: http://fsite.freehosting.ru.
Terdapat kira-kira 100 dokumen pada pelayan. Jadi anda memutuskan untuk memindahkan tapak web anda ke domain lain,
biarkan ia dibayar hosting di zon ru: http://site.ru. Nah, patutkah kita menukar http://fsite.freehosting.ru kepada http://site.ru di mana-mana sahaja?
Ya, terima kasih kepada editor seperti laman web, ini mungkin. Tetapi ini bukan penyelesaian.
Mari kita anggap bahawa sebelum memuat naik halaman ke pelayan, anda menyemak kefungsiannya
pada pelayan apache rumah anda (bagi mereka yang belum tahu apa itu "pelayan rumah", pergi ke sini (Memasang dan mengkonfigurasi pelayan apache), dan bukannya http://localhost anda perlu menulis http:// site.ru di mana-mana. Setuju dengan ini, sekurang-kurangnya ia menyusahkan.

Penyelesaiannya ialah, apabila menentukan laluan ke fail, mengambil kira bukan kedudukannya di tapak, tetapi kedudukannya pada pelayan.

Jalan mutlak

Mari kita ambil, sebagai contoh, fail doc.html, yang terletak di: http://somesite.ru/catalog/doc.html. Seperti yang anda tahu, terdapat folder www pada pelayan. Seperti yang kita boleh lihat dari alamat, folder ini mengandungi folder katalog dan ia sudah mengandungi fail doc.html.

Jika, apabila menentukan laluan ke fail, anda meletakkan / sebelum alamat, maka ia akan serupa dengan yang berikut: root_directory_in_the_north/www/path ke fail.
Iaitu, http://somesite.ru/catalog/doc.html adalah serupa dengan yang berikut: /catalog/doc.html.
Jadi, apabila terdapat / di hadapan alamat, ia bermakna "countdown" bermula dari direktori www.
Sekarang, bukannya http://localhost/index.html, anda boleh menulis /index.html daripada sebarang dokumen.
Tetapi untuk pergi ke direktori cgi anda perlu menulis seperti ini: /cgi-bin/path ke fail.

Laluan yang dibuat menggunakan kaedah yang diterangkan di atas dipanggil mutlak, kerana laluan mutlak (penuh) ke fail pada pelayan ditunjukkan.

Laluan relatif

Terdapat juga laluan relatif, yang ditentukan secara relatif kepada dokumen itu sendiri dari mana pautan itu datang.
Sebagai contoh, jika anda mencipta pautan dalam doc.html newcat/new.html, ini menunjukkan bahawa fail new.html terletak dalam direktori newcat, yang, seterusnya, berada dalam direktori yang sama dengan fail doc.html. Seperti yang anda lihat, laluan ini adalah relatif kepada fail doc.html. Di mana sahaja fail ini berada, laluan newcat/new.html akan sentiasa sah jika fail doc.html dan direktori newcat berada pada tahap yang sama (iaitu dalam direktori yang sama).

Anda juga boleh mengalihkan direktori berbanding dokumen. Untuk melakukan ini, anda perlu menulis ../.
Sebagai contoh, terdapat direktori besar, ia mengandungi dua direktori: primer dan sekunder. Direktori utama mengandungi fail doc.html yang sudah biasa; dan dalam direktori sekunder terdapat fail new.html. Untuk membuat pautan daripada fail doc.html ke fail new.html, anda perlu menulis ../secondary/new.html. Tetapi jika direktori besar terletak dalam direktori www, maka laluan ke fail new.html boleh ditentukan seperti ini: /big/secondary/new.html

Alamat pautan boleh sama ada mutlak atau relatif. Alamat mutlak mesti bermula dengan protokol (biasanya http://) dan mengandungi nama tapak. Pautan relatif adalah berdasarkan akar tapak atau dokumen semasa.

Contoh 8.2 menunjukkan cara membuat pautan mutlak ke tapak lain.

Contoh 8.2. Menggunakan rujukan mutlak

Alamat mutlak

Belajar HTML



Apabila anda menentukan direktori tapak sebagai pautan (contohnya, http://site/css/), fail indeks dipaparkan. Ini ialah fail yang dimuatkan secara lalai apabila mengakses direktori tanpa menyatakan nama fail secara eksplisit. Biasanya fail indeks ialah dokumen bernama index.html.

Pautan mutlak biasanya digunakan untuk menunjuk ke dokumen pada sumber rangkaian lain, walau bagaimanapun, ia juga mungkin untuk membuat pautan mutlak dalam tapak semasa. Walau bagaimanapun, ini tidak selalu diamalkan, kerana pautan sedemikian agak panjang dan menyusahkan. Oleh itu, pautan relatif kebanyakannya digunakan dalam tapak.

Pautan relatif kepada dokumen semasa

Apabila membuat pautan relatif, anda perlu memahami nilai yang perlu anda tentukan untuk atribut href, kerana ia bergantung pada lokasi asal fail. Mari lihat beberapa pilihan biasa.

1. Fail terletak dalam satu folder (Gamb. 8.4).

Nama fail ini diambil hanya sebagai sampel; di tapak, aksara Rusia dengan ruang tidak boleh digunakan dalam nama fail, malah dalam kes yang berbeza.

2. Fail diletakkan dalam folder yang berbeza (Gamb. 8.5).

Apabila dokumen sumber disimpan dalam satu folder, dan yang dipautkan berada dalam akar tapak, maka dua titik dan garis miring (/) hendaklah diletakkan sebelum nama fail dalam alamat pautan, seperti yang ditunjukkan di bawah.

Dua titik dalam kes ini bermakna meninggalkan folder semasa ke tahap yang lebih tinggi.

3. Fail diletakkan dalam folder yang berbeza (Gamb. 8.6).

Kini fail sumber berada dalam dua subfolder, dan untuk memaut ke dokumen dalam akar tapak, anda perlu mengulangi contoh sebelumnya dua kali.

Pautan

Keadaannya serupa dengan mana-mana bilangan subfolder.

4. Fail diletakkan dalam folder yang berbeza (Gamb. 8.7).

Kini keadaan berubah, fail sumber terletak di akar tapak, dan fail yang anda perlu pautkan berada dalam folder. Dalam kes ini, laluan ke fail adalah seperti berikut.

Pautan

Ambil perhatian bahawa tiada titik tambahan atau garis miring sebelum nama folder. Jika fail itu terletak di dalam bukan satu, tetapi dua folder, maka laluan ke sana ditulis seperti ini.

Pautan

Pautan relatif kepada akar tapak

Kadang-kadang anda boleh mencari laluan ke fail relatif kepada akar tapak, ia kelihatan seperti "/Folder/Nama fail" dengan garis miring pada permulaan. Ya, rekod Kursus bermakna pautan itu membawa kepada folder bernama kursus, yang terletak di akar tapak, dan di dalamnya anda perlu memuat turun fail indeks.

Sila ambil perhatian bahawa bentuk rakaman ini tidak berfungsi pada komputer tempatan, tetapi hanya di bawah kawalan pelayan web.

Alamat pautan boleh sama ada mutlak atau relatif. Alamat mutlak mesti bermula dengan protokol (biasanya http://) dan mengandungi nama tapak. Pautan relatif adalah berdasarkan akar tapak atau dokumen semasa.

Contoh 8.2 menunjukkan cara membuat pautan mutlak ke tapak lain.

Contoh 8.2. Menggunakan rujukan mutlak

Alamat mutlak

Belajar HTML



Apabila anda menentukan direktori tapak sebagai pautan (contohnya, http://site/css/), fail indeks dipaparkan. Ini ialah fail yang dimuatkan secara lalai apabila mengakses direktori tanpa menyatakan nama fail secara eksplisit. Biasanya fail indeks ialah dokumen bernama index.html.

Pautan mutlak biasanya digunakan untuk menunjuk ke dokumen pada sumber rangkaian lain, walau bagaimanapun, ia juga mungkin untuk membuat pautan mutlak dalam tapak semasa. Walau bagaimanapun, ini tidak selalu diamalkan, kerana pautan sedemikian agak panjang dan menyusahkan. Oleh itu, pautan relatif kebanyakannya digunakan dalam tapak.

Pautan relatif kepada dokumen semasa

Apabila membuat pautan relatif, anda perlu memahami nilai yang perlu anda tentukan untuk atribut href, kerana ia bergantung pada lokasi asal fail. Mari lihat beberapa pilihan biasa.

1. Fail terletak dalam satu folder (Gamb. 8.4).

Nama fail ini diambil hanya sebagai sampel; di tapak, aksara Rusia dengan ruang tidak boleh digunakan dalam nama fail, malah dalam kes yang berbeza.

2. Fail diletakkan dalam folder yang berbeza (Gamb. 8.5).

Apabila dokumen sumber disimpan dalam satu folder, dan yang dipautkan berada dalam akar tapak, maka dua titik dan garis miring (/) hendaklah diletakkan sebelum nama fail dalam alamat pautan, seperti yang ditunjukkan di bawah.

Dua titik dalam kes ini bermakna meninggalkan folder semasa ke tahap yang lebih tinggi.

3. Fail diletakkan dalam folder yang berbeza (Gamb. 8.6).

Kini fail sumber berada dalam dua subfolder, dan untuk memaut ke dokumen dalam akar tapak, anda perlu mengulangi contoh sebelumnya dua kali.

Pautan

Keadaannya serupa dengan mana-mana bilangan subfolder.

4. Fail diletakkan dalam folder yang berbeza (Gamb. 8.7).

Kini keadaan berubah, fail sumber terletak di akar tapak, dan fail yang anda perlu pautkan berada dalam folder. Dalam kes ini, laluan ke fail adalah seperti berikut.

Pautan

Ambil perhatian bahawa tiada titik tambahan atau garis miring sebelum nama folder. Jika fail itu terletak di dalam bukan satu, tetapi dua folder, maka laluan ke sana ditulis seperti ini.

Pautan

Pautan relatif kepada akar tapak

Kadang-kadang anda boleh mencari laluan ke fail relatif kepada akar tapak, ia kelihatan seperti "/Folder/Nama fail" dengan garis miring pada permulaan. Ya, rekod Kursus bermakna pautan itu membawa kepada folder bernama kursus, yang terletak di akar tapak, dan di dalamnya anda perlu memuat turun fail indeks.

Sila ambil perhatian bahawa bentuk rakaman ini tidak berfungsi pada komputer tempatan, tetapi hanya di bawah kawalan pelayan web.

Mana-mana halaman web, gambar, video, dsb. ialah, pertama sekali, fail yang mempunyainya sendiri mutlak atau relatif laluan (alamat). Fail itu sendiri di Internet terletak pada komputer yang dipanggil pelayan. Oleh itu, anda harus mempertimbangkan bagaimana fail itu dibentangkan pada pelayan dan di Internet. Dalam artikel ini saya ingin menjelaskan perkara di atas dan menjelaskan isu yang dibangkitkan. Boleh kita cuba?

Laluan mutlak (alamat)

Apakah laluan mutlak ke fail?

Jalan mutlak atau alamat ialah laluan atau alamat penuh, berbanding dengan folder rumah pada pelayan atau Nama domain Internet.

berkata " folder rumah“Maksud saya permulaan ruang yang diperuntukkan oleh penyedia hosting. Sebagai contoh, jika kita bercakap tentang pelayan tempatan pada sistem pengendalian Windows, pemacu itu sendiri akan bertindak sebagai folder rumah, iaitu C:/. Pada masa yang sama, selalunya penyedia pengehosan hanya memperuntukkan ruang maya (bersyarat) tertentu kepada pengguna, yang mana folder tertentu, sering dipanggil /home, bertindak sebagai folder rumah.

berkata " Nama domain"Saya maksudkan URL yang bermula dengan sebutan protokol, contohnya: http://sitename.ru/. Di Internet, ini ialah folder rumah untuk setiap sumber yang dibentangkan.

Bagaimana untuk mengetahui laluan mutlak pada pelayan dalam PHP?

Sekiranya semuanya lebih atau kurang jelas dengan alamat URL, maka dengan folder rumah pada pelayan keadaannya agak rumit. Akhirnya, setiap pembekal mempunyai masalah sendiri dan ini harus diambil kira.

Biar saya mulakan dengan fakta bahawa laluan mutlak pada pelayan biasanya ditentukan secara relatif kepada lokasi skrip di mana ini berlaku. Sebagai contoh, fail config.php terletak dalam folder akar tapak dan kita perlu mengetahui laluan mutlak untuknya.

Biar saya jelaskan dengan mengatakan “ Folder akar"Maksud saya folder pada pelayan khusus untuk tapak. Inilah yang berfungsi sebagai titik permulaan URL berhubung dengan nama domain.

Untuk melakukan ini, anda boleh menggunakan pemalar __FILE__, yang mengandungi laluan penuh dan nama fail semasa di mana ia dipanggil. Untuk mendapatkan hanya laluan penuh dan mengalih keluar nama fail semasa, anda boleh menggunakan fungsi dirname(), yang mengembalikan direktori induk bagi laluan yang ditentukan. Sebagai contoh:

$abspath = nama nama(__FAIL__) ."/";

Dalam PHP 5.3 dan lebih baru, anda sudah boleh menggunakan pemalar __DIR__:

$abspath = __DIR__

Oleh itu, adalah sangat mudah untuk memasukkan fail config.php pada masa hadapan dan menggunakan laluan mutlak pembolehubah $abspath yang diperolehi di dalamnya sebagai titik permulaan. Sebagai contoh, katakan bahawa skrip test.php terletak dalam folder: path/ - dan fail data.txt yang dikehendaki berada dalam folder: data/. Dalam kes ini, panggilan mungkin kelihatan seperti:

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

Sila ambil perhatian bahawa saya menyambungkan fail config.php menggunakan laluan relatif, tetapi lebih lanjut mengenainya kemudian.

Laluan relatif (alamat)

Apakah laluan fail relatif?

Laluan relatif atau alamat ialah laluan atau alamat yang berkaitan dengan lokasi fail di mana fail lain diakses.

Mana-mana sistem fail ialah hierarki ketat folder dan fail ibu bapa dan anak. Contohnya: C:\folder\file.php – di sini folder\ folder ialah anak kepada pemacu C:\ dan induk kepada fail file.php.

Untuk kejelasan, mari kita pertimbangkan hierarki berikut:

  • fail1.php
  • folder\
    • fail.php
    • subfolder\
      • fail3.php

Untuk mengakses fail C:\file2.php daripada fail C:\folder\file.php, kita perlu keluar dari folder folder semasa\, i.e. naik satu tingkat. Untuk ini anda boleh menggunakan, folder (Saya juga akan mengatakan pseudo-folder) Direktori Ibubapa, mewakili dua titik (..) . Dalam erti kata lain, kita akan mendapat laluan: ..\file2.php - relatif kepada fail fail.php .

Untuk mengakses fail C:\folder\subfolder\file3.php daripada fail C:\folder\file.php, kita perlu memasukkan subfolder\ subfolder, i.e. turun satu tingkat. Dengan cara ini kita mendapat laluan: subfolder\file3.php - relatif kepada fail file.php .

Mari jadikan perkara lebih rumit dan pergi daripada fail C:\folder\subfolder\file3.php ke fail C:\file2.php . Laluan relatif akan kelihatan seperti: ..\..\file2.php - kami telah naik dua tahap lebih tinggi. Lakukan sebaliknya, iaitu dari fail C:\file2.php kita beralih kepada fail C:\folder\subfolder\file3.php. Laluan relatif akan kelihatan seperti: folder\subfolder\file3.php - kita akan turun dua peringkat.

Kebaikan dan keburukan laluan relatif (alamat)

Jelas sekali, laluan relatif tidak mengandungi folder rumah dan folder induk. Oleh itu, alamat akhir adalah lebih pendek. Lebih-lebih lagi, jika anda perlu berpindah dari satu domain ke domain lain, tidak perlu mendaftarkan alamat mutlak baharu.

Sebaliknya, jika kami memetik kandungan tapak pada sumber lain, dengan gambar yang sama di mana laluan relatif ditentukan, kami akan menerima ralat, kerana Tiada folder tapak dan fail pada sumber pihak ketiga. Ini akan berlaku jika halaman dilihat dalam cache enjin carian. Sekali lagi, menggunakan laluan relatif boleh membuat kesilapan dengan mudah, yang akan mengakibatkan masalah pengindeksan tapak.

Untuk meringkaskan, perlu diingatkan bahawa adalah dinasihatkan untuk meminimumkan penggunaan laluan atau alamat relatif dan menggunakan laluan dan alamat mutlak.

Kesimpulan

Dalam artikel saya, saya cuba mempertimbangkan isu asas yang berkaitan dengan laluan mutlak dan relatif (alamat) kepada fail dan folder. Sebenarnya, jika anda bekerja pada komputer, maka a priori anda sudah mempunyai idea tentang sistem fail, tetapi tanpa mengambil kira beberapa nuansa, agak sukar untuk keluar dari tanah dan menimbulkan beberapa isu yang pasti berkaitan dengan pengalamatan yang betul. Itu sahaja yang saya ada. Terima kasih kerana memberi perhatian. Semoga berjaya!

pada pukul 8:00 Edit mesej 5 ulasan