Переносимые относительные URL - папка в корневой каталог домена - PullRequest
2 голосов
/ 04 февраля 2009

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

http://example.com/myfolder/

http://example.com/

1011 * Е.Г. *

<a href="other.html">Other</a>

Должен перейти к

http://example.com/myfolder/other.html

http://example.com/other.html

соответственно

Но вместо этого в обоих случаях они переходят к:

http://example.com/other.html

Это не проблема, если базовые URL-адреса

http://example.com/myfolder/index.html

http://example.com/index.html

Есть идеи?

Ответы [ 4 ]

3 голосов
/ 04 февраля 2009

Относительные URI всегда разрешаются из базового URI, который является URI документа, если явно не объявлено иначе (см. Элемент base). Так каков базовый URI в вашем случае?

2 голосов
/ 04 февраля 2009

Я подозреваю, что вы тестировали это с базовым URL:

http://example.com/myfolder

(без косой черты)

Если косой черты нет, браузер подумает, что «моя папка» - это просто файл, а не папка. Так что щелчок по относительному URL не попадет в эту папку.

http://example.com/myfolder/

Если базовый URL-адрес такой, то он должен работать так, как вы ожидаете.

Обычно я предпочитаю абсолютные URL, чтобы избежать этих головных болей. Почти все ссылки в моих веб-приложениях выполнены в стиле:

/ моя_папка / other.html

Который всегда указывает на одно и то же место из любого места.

1 голос
/ 04 февраля 2009

Если вы даете в точности как

<a href="other.html">Other</a>

это относительный адрес, и он должен работать следующим образом.

Помните, что когда вы ссылаетесь на файл:

www.example.com/folder/other.html

от

www.example.com/index.html

Вы должны дать ссылку в index.html как:

<a href="folder/other.html">Other</a>

То есть, вы должны ссылаться на файл, используя относительный адрес.

0 голосов
/ 04 февраля 2009

Вы делаете это в статическом HTML? «../other.html» может быть безопасной ставкой (при условии, что вы не получите больше вложенности).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...