Имеете ссылки относительно 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/>, что приведет вас к корню сайта

<a href="/fruits/index.html">Back to Fruits List</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>
Другие вопросы по тегам