Статьи :
Абсолютная адресация страниц
20 марта 2013, 14:08 |
Одна из типичных ошибок при разработке сайтов – создание относительной адресации вместо абсолютной (когда явно не используется адрес сайта). Для сравнения: относительная адресация:
абсолютная адресация:
Конечно, первый вариант тоже имеет право на жизнь. Но – ровно до тех пор, пока вы не заходите сделать красивые url вида http://site.ru/projects/web-razrabotka ). На этом месте сразу же начнутся проблемы, так как все относительные ссылки в теле страницы станут уже отсчитываться не от корня сайта, а от текущего адреса, и просто перестанут работать. Очевидный вывод – сразу делать всё в абсолютных ссылках. Но это подходит для вновь создаваемых проектов. А как быть, если уже есть сайт, где сделаны относительные ссылки? Здесь нам поможет трюк с кэширование вывода в PHP. Суть метода заключается в том, чтобы не выводить сразу все в браузер, а передать сначала страницу в кэш, там на лету преобразовать все ссылки в абсолютные, а потом уже отдать страницу в браузер. Посмотрим, как это выглядит на практике: в самый верх скрипта:
и в самый низ скрипта:
Если все ссылки однотипны, то подобный "трюк" позволит сэкономить массу времени (не нужно будет перелопачивать все скрипты и искать, где формируются ссылки). P.S. Приведем еще один довод, почему внутри проекта следует делать все ссылки (на страницы, картинки, яваскрипты и т.д.) абсолютными. Предположим, мы разрабатывает систему для очередного заказа. На локальном компьютере данная система имеет адрес http://site.ru. Пусть в теле страницы стоит относительная ссылка на картинку: img src="/img/pict.jpg". Локально вроде бы все хорошо, и картинка грузится. Но что произойдет, когда мы перенесем систему на тестовый сервер в виде http://our-test-server.ru/site/ ? (чтобы заказчик мог следить за ходом работы) Посмотрим, какой будет путь у нашей картинки: http://our-test-server.ru/img/pict.jpg Хотя правильный путь должен быть: http://our-test-server.ru/site/img/pict.jpg Как видно, картинка стала "битой". Хуже то, что могут незаметно отпасть яваскрипты, стили или что-то еще, что не столь явно. Все это придется вылавливать и исправлять. |