Имеете ли ссылки относительно корня?

Есть ли способ привязать все ссылки на странице к корневому каталогу?

Например, на 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>