Имеете ли ссылки относительно корня?
Есть ли способ привязать все ссылки на странице к корневому каталогу?
Например, на 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
? Если первый, есть ли способ, чтобы он указывал на второй вместо этого?
Ответы
Ответ 1
Корневой 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>
Отредактировано в ответ на вопрос, в комментариях, от OP:
Итак, сделаем/сделаем это относительно www.example.com, есть ли способ указать, что такое корень, например, что, если я хочу, чтобы root был www.example.com/fruits в www.example.com/fruits/apples/apple.html?
Да, предваряя URL-адрес в атрибутах href
или src
, с /
сделает путь относительно корневого каталога. Например, с учетом html-страницы в www.example.com/fruits/apples.html
, a
of href="/vegetables/carrots.html"
будет ссылаться на страницу www.example.com/vegetables/carrots.html
.
Элемент 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#h-12.4.
Рекомендуемое чтение:
Ответ 2
Использование
<a href="/fruits/index.html">Back to Fruits List</a>
или
<a href="../index.html">Back to Fruits List</a>
Ответ 3
<a href="/fruits/index.html">Back to Fruits List</a>
Ответ 4
просто поместите <a href="/">some link<a/>
, который приведет вас к корню веб-сайта
Ответ 5
Если вы создаете URL-адрес с серверной части приложения ASP.NET и развертываете свой веб-сайт в виртуальном каталоге (например, app2) на своем веб-сайте, т.е.
http://www.yourwebsite.com/app2/
то просто вставьте
<base href="~/" />
сразу после тега title.
поэтому всякий раз, когда вы используете корень, например,
<a href="/Accounts/Login"/>
решит " http://www.yourwebsite.com/app2/Accounts/Login"
Таким образом, вы всегда можете указывать на свои файлы относительно абсолютно;)
Для меня это наиболее гибкое решение.
Ответ 6
Чтобы указать URL-адрес тега изображения, который находит каталог images/
в корне, например
`logo.png`
вы должны указать src
URL, начинающийся с /
следующим образом:
<img src="/images/logo.png"/>
Этот код работает в любых каталогах без каких-либо проблем, даже если вы находитесь в branches/europe/about.php
, но логотип можно увидеть прямо там.
Ответ 7
Используйте этот код "./" как root на сервере, поскольку он работает для меня
<a href="./fruits/index.html">Back to Fruits List</a>
но когда вы находитесь на локальной машине, используйте следующий код "../" в качестве корневого относительного пути
<a href="../fruits/index.html">Back to Fruits List</a>