Абсолютные и относительные ссылки

В задании “Относительные адреса” указан совет "Использовать относительные адреса для навигации по сайту не рекомендуется."
Вот в этом файле index.html, который лежит в корне основной папки проекта

    <!DOCTYPE html>
<html>
    <head>
       <title>Ссылка на файл</title>
       <meta charset="utf-8">
    </head>
    <body>
        <p><a href="/assets/course4/file.rtf">Скачать простой текстовый файл</a></p>
    </body>
</html>

залитом на сервер, файл file.rtf будет скачиваться. А на локальном компъютере – нет, так как адрес будет по умолчании (на винде) C:\assets\course4\file.txt. А так папка с моим проектом лежит на Рабочем столе то он его не найдет.
Если же я пишу относительную ссылку <a href="assets/course4/file.rtf">Скачать простой текстовый файл</a>, т.е. без / – проблем нет. Я могу создать статический сайт, проверить у себя, а потом залить на сервер.
Подскажите, почему, зачем и как нужно использовать укороченную абсолютную ссылку, проще же относительными?

Проблемы с относительными ссылками появятся, когда у вас будет не один файл, а структура вложенных папок и адресов. С относительными ссылками придётся учитывать структуру вложенности папок и файлов, в то время как абсолютные ссылки строят путь всегда от корня независимо от положения в файловой системе.

Спасибо, понятно. А как тогда загружать с локального компъютера, ведь такая запись <a href="/assets/course4/file.rtf"> не будет работать?

Да, локально такая ссылка будет указываться с корня файловой системы. Локально для разработки тоже можно поднять дев-сервер, если вам нужны работающие ссылки =) Это на самом деле несложно, для винды можно какой-нибуь denwer поставить или прям в винде есть встроенный IIS, который можно настроить.

Спасибо @juwain, первая мысль такая и была, но не хочется для простых проектов возиться. Я прописал <base href="C:\Users\Yaro\Desktop\html_pract\"> и на данный момент проблему решил. Не знаю правильно или нет, но работает.

Да, тоже вариант. :thumbsup:

1 лайк