понеделник, 19 октомври 2015 г.

Пълни и относителни пътища в хипервръзките, изображенията, скриптовете и стиловете.
При изписване на HTML код, който използваме за интернет страница, имаме връзки, които извикват други файлове. В зависимост от това, дали е хипервръзка или не, атрибутът на тага, който използваме e HREF и SRC.
Пълният път на връзката зависи от това дали е сигурна или обикновена.
При обикновената връзка адресът започва с HTTP.
При сайтове като google или facebook, където има въвеждане на лични данни, използваме сигурна връзка, която се бележи с една допълнителна буква – S, която идва от английското Security. Съответно адресът започва с HTTPS.
След това имаме името на сайта. Пример за правилна връзка е:
<a href=”https://www.google.bg”>Връзка към Google</a>
Както вече сме говорили, съставните тагове се затварят с /, а съдържанието между тях се показва в браузъра. При обикновените тагове краят се бележи само с />, без да се преписва името. Например:
<img src=”https://www.google.bg/logo.jpg” />
Нотацията за / беше приета с цел работа на сайтовете с мобилни телефони, при които не можеше да се определи началото и край на таг. Старите кодове изглеждаха така:
<img src=”https://www.google.bg/logo.jpg”>
Т.е. виждате, че няма интервал и /
Това обаче обърква съвременните смартфони и новите сайтове, които искат да отговарят на стандартите и за мобилна версия, би следвало да изписват правилно кода с добавените интервал и /
Да се върнем обаче на пълния път на връзките.
Първата част вече беше обсъдена – започва се с http или https. Следва двуеточие. Двуеточието се използва във всички операционни системи и указва местоположение на опредено физическо устройство. Ако отворите устройство C на вашите компютри, ще видите, че устройството, на което е инсталиран Windows е C и ако го отворите, горе в адресната лента ще ви се изпише C:\, т.е. вие сте в устройство C, а \ показва, че се намирате в основната папка. Всяко разделение на папките се извършва с \
Обаче тази черта има проблем с формирането на други операционни системи и затова е прието разделението в интернет да бъде с обратната наклонена черта, а именно /
Пълният път се формира, когато поставим две наклонени черти //
Това указва на нашия компютър, че ИЗЛИЗАМЕ от неговите файлове и ще търсим файлове в интернет.
Всяка последваща / е ЕДИНИЧНА и разделя файлове или папки. ЗАДЪЛЖИТЕЛНО след двете наклонени черти е името на компютъра в интернет, до който искаме достъп. Повечето сайтове по света използват единна система за това име, наречена DNS, която ще разглеждаме друг път.
Важното е да знаем, че пълното име се формира по следния начин:
http или https, после :, после //, след това „име на компютъра“ и главната му папка /
Пример:
https://www.google.bg/
Ето така ние търсим компютъра, който е регистриран в интернет под името google.bg и искаме да видим главната му папка. Ако пропуснем / след google.bg, нашият бразузър сам ще я добави.
Множество файлове и папки на един такъв компютър са познати под названието „уеб сайт“.
Сега да разгледаме пример за папки в сайт като google.bg
Първо имаме основна папка, след това примерно папки images и codes.
Да напишем код до папка images и файла logo.jpg
https://www.google.bg/images/logo.jpg
Описахме път до файла.
Какво се случва, ако обаче искаме да напишем път до друг файл в папка codes, който се казва script.js
Процедурата е същата:
https://www.google.bg/codes/script.js

Както се вижда при пълен път, винаги трябва да преписваме пълното име.
Какъв е плюсът на пълния път? Със сигурност ВИНАГИ ще отворим желания файл, защото сме посочили ПЪЛНИЯ път.
Какъв е минусът? Ако променим името на компютъра и той вече не е google.bg, ще трябва навсякъде в нашия код да преправим това google.bg с нещо друго.
Ето защо на помощ идва относителния път.
При относителния път всяка връзка се описва ОТНОСИТЕЛНО спрямо файла, който се извиква.
Преди кода се поставя ., която означава текуща папка и .., за папка, която се намира над посочената (или т. нар. „родителска папка“)
В горния пример папка / (само това) е родител на папките codes и images
Значи ако ние се намираме в главната папка и искаме да извикаме папка images, то става по следния начин
Първо . след това / и след това името на папката (в случая images) или с пример
./images
Ако искаме да стигнем до папка codes, правим същото:
./codes

Какво обаче става, ако сме в папка images и искаме да отидем в папка codes?
Първо използваме .. (за излизане от текущата и след това отиваме в новата, т.е.
../codes
В превод - .. означават – излез от images (т.е. върни се в началната папка) и после – влез в папка codes.
Относителните пътища могат да бъдат и спрямо началото. Например:
/codes
Означава, че ще се отвори папка codes, независимо къде се намираме в момента, защото указваме, че искаме от главната папка да тръгнем към нея. Защо се използва и това изписване? Защото има оптимизация на сайтовете с т.нар. SEO линкове. При тях реалният път към файла е скрит, за сметка на описанието. Така например можете да имате:
https://www.google.bg/търсене/разширено-търсене/купон-в-троян
Това не означава, че имате папки „търсене“, „разширено-търсене“ и файл „купон-в-троян“, а че сте създали SEO линкове. Как да ги разпознаете? Най-лесно е, че тези линкове обикновено са на език, различен от английски и помагат за по-лесното откриване на даден сайт в интернет. Обаче вашият компютър може да се обърка. Ако имате горната връзка, той неправилно ще реши, че ако му укажете ./images, той трябва да търси картинката в папка:
https://www.google.bg/търсене/разширено-търсене/купон-в-троян/images
За да не се случва това, се използва относителна връзка спрямо началото.
Т.е. имате:
/images
Което се възприема от компютъра ви – ще премахна всичко след името и ще започна „начисто“.