HTML › დამწყები › ბმულები
აბსოლუტური და ფარდობითი მისამართი
ეს თავი CodeQuest Pro-ს ნაწილია
Pro ხსნის სკოლის ყველა კურსს და თამაშის ყველა ლეველს, ვიდეოს და პროექტს. ერთჯერადი გადახდა, გამოწერის გარეშე.
რას ისწავლი
- რით განსხვავდება აბსოლუტური მისამართი ფარდობითისგან
- როგორ მიუთითო ფაილი იმავე საქაღალდეში, ქვესაქაღალდეში და ზემოთ
- რას ნიშნავს მისამართი, რომელიც
/-ით იწყება
სრული მისამართი: აბსოლუტური
აბსოლუტური მისამართი (absolute URL) სრულ გზას შეიცავს: პროტოკოლს, საიტს და გვერდს.
<a href="https://ka.wikipedia.org/wiki/HTML">HTML ვიკიპედიაში</a>ის ყველგან ერთნაირად მუშაობს, საიდანაც არ უნდა დააჭირო. სხვა საიტზე ბმული ყოველთვის აბსოლუტური უნდა იყოს და https://-ით უნდა იწყებოდეს. თუ პროტოკოლი დაგავიწყდა, href="ka.wikipedia.org", ბრაუზერი იფიქრებს, რომ ეს შენი საიტის შიგნით არსებული ფაილის სახელია.
მოკლე მისამართი: ფარდობითი
შენი საიტის გვერდებს შორის ბმულები ჩვეულებრივ ფარდობითია (relative URL): ისინი ამბობენ, სად არის ფაილი ამ გვერდთან შედარებით. წარმოიდგინე ასეთი საიტი:
my-site/
index.html
about.html
hobbies/
football.html
chess.html
images/
me.jpg| საიდან | სად | href |
|---|---|---|
| index.html | about.html | about.html |
| index.html | hobbies/chess.html | hobbies/chess.html |
| hobbies/chess.html | hobbies/football.html | football.html |
| hobbies/chess.html | index.html | ../index.html |
| hobbies/chess.html | images/me.jpg | ../images/me.jpg |
ფარდობითი მისამართი ქალაქში გზის ახსნას ჰგავს: „აქედან მარჯვნივ, მერე ორი სახლი“. ის მუშაობს მხოლოდ იქიდან, სადაც ახლა დგახარ. ამიტომ ერთი და იგივე ფაილისკენ სხვადასხვა გვერდიდან სხვადასხვა მისამართი მიდის. სამი წესი:
- სახელი მარტო (
about.html) ნიშნავს: „იმავე საქაღალდეში, სადაც ეს გვერდია“. - საქაღალდე/სახელი (
hobbies/chess.html) ნიშნავს: „შედი ქვესაქაღალდეში“. ../ნიშნავს: „ერთი საქაღალდით ზემოთ ადი“.../../ორი საქაღალდით ზემოთ.
რატომ ფარდობითი
ფარდობით ბმულებს დიდი უპირატესობა აქვს: საიტი მთლიანად შეგიძლია სხვაგან გადაიტანო, სხვა საქაღალდეში ან სხვა სერვერზე, და ბმულები არ გაფუჭდება, რადგან ისინი ფაილებს ერთმანეთთან შედარებით აღწერენ. ამიტომ ფარდობითი ბმულები შენს კომპიუტერშიც მუშაობს, როცა ფაილს ორჯერ დაჭერით ხსნი, და გამოქვეყნებულ საიტზეც.
ძირიდან: /
მისამართი, რომელიც /-ით იწყება, ითვლება საიტის ძირიდან (root-relative), და არა მიმდინარე გვერდიდან:
<a href="/learn/">სკოლა</a>
<img src="/icons/icon-192.png" alt="ბიტი">/learn/ ყოველთვის https://codequest.space/learn/-ია, რომელ გვერდზეც არ უნდა იყო. ეს მოსახერხებელია დიდ საიტებზე, მაგრამ ერთი ნაკლი აქვს: როცა HTML ფაილს კომპიუტერში ორჯერ დაჭერით ხსნი, „საიტის ძირი“ შენი დისკის ძირი ხდება და ასეთი ბმულები არ მუშაობს. პირველი საიტისთვის ჩვეულებრივი ფარდობითი მისამართები ჯობს.
სცადე თავად
ეს რედაქტორი ერთი ფაილით მუშაობს, ამიტომ აქ შენი საქაღალდეები არ არის. სურათი /icons/icon-192.png კი ჩანს, რადგან ის ამ საიტის ძირშია. შეცვალე მისამართი icons/icon-192.png-ით, ბოლოს /-ის გარეშე, და ნახე, რომ სურათი გაქრა: ფარდობითი მისამართი ახლა მიმდინარე გვერდის საქაღალდიდან ითვლება.
ხშირი შეცდომები
https://-ის გარეშე გარე საიტი.href="google.com"ეძებს ფაილს სახელად google.com შენს საქაღალდეში.- Windows-ის გზა.
href="C:\Users\nino\site\about.html"მხოლოდ შენს კომპიუტერში იმუშავებს და ისიც ცუდად. ვებში გზები/-ით იყოფა და ფარდობითია. - ასოების ზომა. სერვერებზე ხშირად
About.htmlდაabout.htmlსხვადასხვა ფაილია. სახელები ყოველთვის პატარა ასოებით წერე, ინტერვალების გარეშე.
სავარჯიშო
ზემოთ მოცემული my-site საქაღალდისთვის დაწერე ბმულები ფაილიდან hobbies/football.html: მთავარ გვერდზე (index.html), ჭადრაკის გვერდზე და შენს სურათზე (images/me.jpg, როგორც <img>). ასევე დაამატე ბმული ვიკიპედიაზე https://ka.wikipedia.org.
💡 მინიშნება
football.html hobbies საქაღალდეშია. index.html-მდე ერთი საქაღალდით ზემოთ უნდა ახვიდე: ../index.html. chess.html იმავე საქაღალდეშია.
✅ ამოხსნის ნახვა
<p><a href="../index.html">მთავარი გვერდი</a></p>
<p><a href="chess.html">ჩემი ჭადრაკი</a></p>
<img src="../images/me.jpg" alt="ეს მე ვარ ფეხბურთის მოედანზე">
<p><a href="https://ka.wikipedia.org">ქართული ვიკიპედია</a></p>მინი-ქვიზი
1რომელი მისამართია აბსოლუტური?
აბსოლუტურ მისამართს პროტოკოლი და საიტი აქვს.
2რას ნიშნავს ../ მისამართში?
ორი საქაღალდით ზემოთ: ../../.
3გვერდი blog/post.html-დან როგორ მიუთითო ფაილი blog/photo.jpg?
ორივე ერთ საქაღალდეშია.
შეჯამება
- აბსოლუტური მისამართი სრულია (
https://...) და სხვა საიტებისთვის გამოიყენება. - ფარდობითი მისამართი მიმდინარე გვერდიდან ითვლება:
about.html,hobbies/chess.html,../index.html. /-ით დაწყებული მისამართი საიტის ძირიდან ითვლება.- ფაილების სახელები: პატარა ასოები, ინტერვალების გარეშე.