Как сделать так, чтобы относительные URL из разных файлов отображались в разные корни? - PullRequest
1 голос
/ 02 декабря 2011

Если у меня две папки на локальном хосте:

  • локальный \ сайтов \ собака
  • локальный \ сайтов \ кошка

Как сделать так, чтобы все относительные URL в файлах в каждой папке использовали соответствующую папку в качестве корневого? Если возможно, существует ли общий способ, чтобы все папки в папке сайтов автоматически служили корнем для всех относительных URL-адресов в них?

1 Ответ

3 голосов
/ 07 декабря 2011

Самый простой способ добиться того, о чем вы просите, - использовать базовый тег HTML (хотя есть некоторые недостатки). Это позволяет указать URL-адрес по умолчанию для всех ссылок на сайте. В следующем примере относительный корень для документа равен http://www.apache.org/, поэтому / images / feather-small.gif будет загружен из http://www.apache.org/images/feather-small.gif.

<html>
<head>
<title></title>
<base href="http://www.apache.org/" />
</head>
<body>
<img src="/images/feather-small.gif" />
</body>
</html>

Для ваших сайтов вам потребуется, чтобы каждый сайт содержал несколько разные базовые теги, такие как:

<base href="http://localhost/sites/cats/" />
<base href="http://localhost/sites/dogs/" />

Я полагаю, если бы у вас было много сайтов, это могло бы стать довольно утомительным (особенно, если вы хотите поменяться местами). Один из вариантов - настроить базовый тег для каждого сайта в одном месте, а затем включить его, используя что-то вроде серверной части (mod_include). Предполагая, что ваши сайты являются статическим контентом, размещенным на Apache, вы можете использовать mod_include для предоставления динамического базового тега включений. В качестве альтернативы, если ваши сайты динамически создавали сценарии с использованием PHP, ASP, JSP (или аналогичных программ), вы можете получить или сгенерировать базовый тег с использованием этих технологий.

Если вы создали basetag.txt , содержащий:

<base href="http://localhost/sites/cats/" />

Вы можете сослаться на это в своем статическом контенте, например index.html может содержать:

<!--#include virtual="./basetag.txt" -->

Тогда, если вам нужно переместить сайт, чтобы сказать " felines ", вам нужно будет отредактировать только один файл basetag.txt .

Надеюсь, это поможет.

...