Использование корневых ссылок с поддоменом

Я унаследовал веб-сайт, на котором предыдущий разработчик закодировал все ссылки относительно корня сайта с ведущей обратной косой чертой в каждой ссылке:

<link href="/css/file.css" />
<script src="/js/file.js"></script>

Это отлично работает, когда сайт размещен на сервере, поскольку ссылки будут соответствовать:

http://www.example.com/css/file.css
http://www.example.com/js/file.js

Однако я пытаюсь заставить эти ссылки работать правильно при вызове из подпапки для локального тестирования. В частности, я использую WAMP и переместил весь код в локальную папку с именем site по адресу http://localhost:8080/site/.

Я не могу использовать корень localhost, поскольку WAMP хранит там различные файлы (включая индекс, который может быть перезаписан).

Очевидное решение, как предлагают многие сообщения здесь, на StackOverflow, - просто использовать ссылки, относящиеся к папке, например:

<link href="css/file.css" />
<script src="js/file.js"></script>

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

Чтобы не редактировать каждую ссылку, я попытался установить HTML-тег <base> и указать папку напрямую:

<base href="http://localhost:8080/site/">

Однако, похоже, это не работает.

<base> несовместим с корневыми ссылками?

Могу ли я легко получить ссылку на все файлы http://localhost:8080/site/ без необходимости вручную редактировать каждую из уже существующих корневых ссылок? Или мне придется вручную обновлять каждый, чтобы он относился к папке?


person Obsidian Age    schedule 31.01.2017    source источник


Ответы (2)


<base> несовместим с корневыми ссылками?

Нет, но абсолютный путь остается абсолютным путем. Он разрешится относительно http://localhost:8080/site/, отбросив /site/.

Если вы хотите использовать абсолютные пути и не хранить свои сайты разработки в подкаталогах, тогда настройте HTTP-сервер на использование виртуального хостинга имен.

Добавьте собственные имена хостов (либо на DNS-сервере для вашей локальной сети, либо в файле hosts в вашей системе разработки), например site.localhost, и установите DocumentRoot на виртуальном хосте.

person Quentin    schedule 31.01.2017
comment
Спасибо, что сообщили мне, что есть опция, которая позволяет мне сохранять корневые ссылки - это, безусловно, правильный путь :) - person Obsidian Age; 01.02.2017

Вы пробовали использовать функцию замены в своей среде IDE? Вы можете просто заменить все ="/ на =". Это сэкономит вам много работы и избавит от стресса.

person Raymo111    schedule 05.12.2018