Базовый HTML - как установить относительный путь к текущей папке?


86

Допустим, я сейчас нахожусь по адресу: http://example.com/folder/page.html

Можно ли создать на этой странице относительную ссылку, указывающую на http://example.com/folder/без указания folderместа? (И используя только HTML.)

ОБНОВЛЕНИЕ: как оказалось, ./работает только в нестрогом режиме doctype, но .работает в обоих режимах, так что, на мой взгляд, это лучший ответ :) Всем спасибо.


Зачем кому-то создавать относительный путь к текущему каталогу, если по умолчанию только имя самого файла в href предполагает текущий каталог?
Мэтью

Ответы:


94

Просто точка работает. Однако тип документа имеет значение, поскольку иногда ./ тоже подходит.

<a href=".">Link to this folder</a>

38

Для любого, кто нашел эту ветку, обращение к относительным путям всегда приводило к спорам о том, что правильно, а что нет.

В зависимости от того, где вы используете путь, который нужно адресовать, это будет зависеть от того, как вы указываете путь.

В общем-то :

.и ./сделайте то же самое, но вы бы не использовали его .с именем файла. В противном случае у вас будет браузер, запрашивающий .filename.extкак файл с сервера. Правильный метод будет ./filename.ext.

../адресует путь на один уровень вверх от текущей папки. Если бы вы были в пути /cheese/crackers/yummy.html, и ваш код ссылки запрошен ../butter/spread.htmlв документе yummy.html, тогда вы бы адресовали путь /cheese/butter/spread.html, насколько это касается сервера.

/всегда будет обращаться к корню сайта.


12

Ты можешь использовать

 ../

означать на один уровень выше. Если у вас есть страница с именем page2.html в той же папке, что и page.html, то относительный путь:

 page2.html.

Если у вас page2.html на одном уровне с папкой, то путь следующий:

  ../page2.html

Это ответило на вопрос, который я пришел сюда искать, как найти страницу в той же папке.
jvangeld

10
<html>
    <head>
        <title>Page</title>
    </head>
    <body>
       <a href="./">Folder directory</a> 
    </body>
</html>

1
Неа. Это идет на один уровень выше. Мне нужна текущая папка.
serg

3
Нет, это не так :) Единственная точка - это ответ.
serg

1
Я тестирую его как в IE, так и в Firefox и "." был таким же, как "./" HTML 4.01 Transitional. Это проблема типа документа?
MrChrister

Хм, это могло быть так. Я использую строго, наверное, надо было упомянуть об этом.
serg

3

Кажется, что оба ниже работают

./

.


1
Все еще неправильно, это идет на один уровень выше, а он не об этом спрашивает ... См. Ответ
Bullines

4
./ подниматься на уровень выше мне кажется нонсенсом. почему он это делает?
Йоханнес Шауб - лит


2

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

 <a href="./page.html">

Это заставит вас указать на этот файл в той же папке, если вы находитесь на странице http://example.com/folder/index.html

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.