Имеете ссылки относительно root?
Есть ли способ, чтобы все ссылки на странице были относительно корневого каталога?
Например, на www.example.com/fruits/apples/apple.html
Я мог бы иметь ссылку, говорящую:
<a href="fruits/index.html">Back to Fruits List</a>
Будет ли эта ссылка указывать на www.example.com/fruits/apples/fruits/index.html
или же www.example.com/fruits/index.html
? Если первое, есть ли способ указать на второе?
8 ответов
Корневой URL начинается с /
характер, чтобы выглядеть примерно так <a href="/directoryInRoot/fileName.html">link text</a>
,
Ссылка, которую вы разместили: <a href="fruits/index.html">Back to Fruits List</a>
ссылается на HTML-файл, расположенный в каталоге с именем fruits
каталог находится в том же каталоге, что и HTML-страница, на которой появляется эта ссылка.
Чтобы сделать его относительным корневым URL, измените его на:
<a href="/fruits/index.html">Back to Fruits List</a>
Отредактировано в ответ на вопрос, в комментариях от ОП:
Таким образом, выполнение / сделает это относительно www.example.com, есть ли способ указать, что такое корень, например, что делать, если я хочу, чтобы корень был www.example.com/fruits в www.example.com/fruits/ яблоки /apple.html?
Да, предварительно добавив URL, в href
или же src
атрибуты, с /
сделает путь относительно корневого каталога. Например, учитывая HTML-страницу в www.example.com/fruits/apples.html
, a
из href="/vegetables/carrots.html"
будет ссылка на страницу www.example.com/vegetables/carrots.html
,
base
элемент tag позволяет вам указать base-uri для этой страницы (хотя base
тег должен быть добавлен на каждую страницу, на которой необходимо использовать конкретную базу, для этого я просто приведу пример W3:
Например, с учетом следующей декларации BASE и декларации A:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>Our Products</TITLE>
<BASE href="http://www.aviary.com/products/intro.html">
</HEAD>
<BODY>
<P>Have you seen our <A href="../cages/birds.gif">Bird Cages</A>?
</BODY>
</HTML>
относительный URI "../cages/birds.gif" будет разрешен для:
http://www.aviary.com/cages/birds.gif
http://www.w3.org/TR/html401/struct/links.html.
Предлагаемое чтение:
Использование
<a href="/fruits/index.html">Back to Fruits List</a>
или же
<a href="../index.html">Back to Fruits List</a>
Если вы создаете URL-адрес на стороне сервера приложения ASP.NET и развертываете свой веб-сайт в виртуальном каталоге (например, app2) на своем веб-сайте, например http://www.yourwebsite.com/app2/
затем просто вставьте
<base href="~/" />
сразу после тега заголовка.
поэтому всякий раз, когда вы используете корневой родственник, например
<a href="/Accounts/Login"/>
решил бы " http://www.yourwebsite.com/app2/Accounts/Login"
Таким образом, вы всегда можете указывать на ваши файлы относительно-абсолютно;)
Для меня это самое гибкое решение.
Сводка относительного пути (HTML):
/file_Or_FolderName Root directory
./file_Or_FolderName Current directory
../file_Or_FolderName Previous directory (One level up)
../../file_Or_FolderName Previous of previous directory (Two levels up)
../../../file_Or_FolderName Just like above - Three levels up
Просто положи <a href="/">some link<a/>
, что приведет вас к корню сайта
Чтобы дать URL тегу изображения, который находит images/
каталог в корне вроде
`logo.png`
ты должен дать src
URL, начинающийся с /
следующее:
<img src="/images/logo.png"/>
Этот код работает в любых каталогах без проблем, даже если вы находитесь в branches/europe/about.php
Тем не менее, логотип можно увидеть прямо там.
Используйте этот код "./" как root на сервере, так как он работает для меня
<a href="./fruits/index.html">Back to Fruits List</a>
но когда вы находитесь на локальной машине, используйте следующий код "../" в качестве корневого относительного пути
<a href="../fruits/index.html">Back to Fruits List</a>