Что означает «./» (точка косая черта) с точки зрения расположения пути к файлу HTML?


228

Я знаю, ../значит идти по пути, но что ./именно означает?

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

Ответы:


136

./папка, в которой находится рабочий файл:

Таким образом, /index.htm ./это корневой каталог,
а в /css/style.css ./папке css.

Это важно помнить , потому что если вы двигаетесь CSS от /index.htmк /css/style.cssпути изменится.


45
Как это отвечает на вопрос? Очевидно, Саймон Су понимает, что ./ относится к тому же месту, где находится файл ссылки. Основная часть вопроса заключается в следующем: «Зачем его использовать и нужно ли это вообще?». Единственная причина, по которой я предпочел найти синтаксис «./file» вместо «file», заключается в том, что ./ означает текущую папку и ТОЛЬКО текущую папку. Так что если есть какой-то инструмент / компилятор / и т.д., который ищет файл, то «./file» будет искать ТОЛЬКО в текущей папке, тогда как «файл» будет искать везде, где инструмент настроен для поиска (например, root, текущая папка и т. д.)
Марсель Тот

12
Так в чем разница между ./abc.htmи просто abc.htm?
Teemoh

12
@Teemoh Они одинаковы в JS, HTML и CSS. «./» - это старое соглашение о программировании, которое перенесено на эти новые языки. В других обстоятельствах они могут означать разные вещи. например. если в ОС задан «путь», abc.exe может быть файлом, а ./abc.exe - нет.
Coomie

@MarcelToth вы действительно должны опубликовать это как ответ!
Адам

285

/ означает корень текущего диска;

./ означает текущий каталог;

../ означает родителя текущего каталога.


Есть ли "header (" Location: ../ ");" перенаправить в родительский каталог?
Белфорд

3
Чем отличается ./index.html от просто index.html?
N-съел

1
У меня есть кусок кода из шаблона, он содержит, ././что это значит?
Аарон Франке

121

Вы можете использовать следующий список в качестве краткого справочника:

   /   = Root directory
   .   = This location
   ..  = Up a directory
   ./  = Current directory
   ../ = Parent of current directory
   ../../ = Two directories backwards

Полезная статья: https://css-tricks.com/quick-reminder-about-file-paths/


13
Какая разница между «Это место» и «Текущий каталог»? Спасибо.
Веб-брат

2
@WebBrother, как оказалось ./ работает только в нестрогом режиме doctype, пока. работает в обоих режимах, вот ссылка stackoverflow.com/questions/296873/…
Макаров Сергей

Спасибо. Это четкое объяснение только что решило проблему, настолько основополагающую, что мне было стыдно спросить вслух.
Лики Эдди

57
.  = This location
.. = Up a directory

Так что, ./foo.htmlэто просто foo.html. И это необязательно, но может иметь значение, если сценарий сгенерировал путь (отношение к сценарию , а не к тому, как работает ссылка).


38

Да, ./означает текущий рабочий каталог. Вы можете просто ссылаться на файл напрямую по имени, без него.


11

Вы правы, что можете опустить это. Это полезно только для ясности. Нет никакой функциональной разницы между тем, чтобы быть там и не быть там.


16
It's useful only for clarity.Или путаница, в случае с ОП - и моя. :)
Ноябрь

Вы не можете опустить его, когда импортируете файл javascript в html5. Например, если у вас есть папка js и файл index.html в одном каталоге: <script src = "./ js / main.js"> </ script>, объявленный в html 5, является правильным, но если вы пропустите '. ' запись не загружает файл.
MaXi32

4
@ MaXi32 - в вашем примере <script src="js/main.js"></script>будет загружен файл в HTML5, а также./js/main.js
pmrotule

9

Быстрый и краткий обзор путей

Абсолютные пути

http://website.com/assets/image.jpg
Если изображение не в вашем домене - иди ищи там изображение


//website.com/assets/image.jpg
изображение загружается по протоколам http или https


Относительные пути

(Для внутреннего использования, если изображение находится на том же сервере)


image.jpg
изображение в том же месте, что и документ, вызывающий изображение!


./image.jpg
То же, что и выше, изображение в том же месте, что и документ, вызывающий изображение!


/assets/image.jpg
Подобно Абсолютным путям, просто пропуская протокол и доменное имя.
Идите поиск по моему изображению, начиная с моей корневой папки /, затемassets/


assets/image.jpg
на этот раз активы находятся в том же месте, что и документ, поэтому перейдите в активы для изображения


../assets/image.jpg
Оттуда, где находится документ, вернитесь на одну папку назад ../ и войдите вassets


../../image.jpg
вернуться две папки назад , вот мое изображение!


../../assets/image.jpg
перейти на две папки назад, ../../ а затем войти в assets


Есть ли способ сказать «перейти к окончательному корню и затем следовать по этому пути», не используя доменное имя (т. Е. Если вам нужен сайт для работы в промежуточной среде)? Или вам просто нужно сделать что-то вроде ../../../../../../../../../../../../../ .. /../../../../../../../../../../../../../../../../. ./../../images/image.jpg и надеюсь, что охватывает все возможные сценарии?
Марк Чапел

1
@ Отметьте, если я правильно понял ваш вопрос, вам нужно «вернуться (неопределенное время) до корня, затем ввести images. См. Относительные пути и третий пример/images/image. jpg
Roko C. Buljan

2

Да, ./означает каталог, в котором вы сейчас находитесь.


8
Это немного вводит в заблуждение. ./thisfile.txtне всегда эквивалентны /thisfile.txt. Это полностью зависит от того, в каком каталоге выполняется код.
Джон Ньюмуис

@JonathanNewmuis прав ./thisfile.txt не является явно /thisfile.txt
Coomie

так что, если код выполняется в другом месте, ./будет ссылаться на исходное место?
CodyBugstein

2

Например, CSS-файлы находятся в папке с именем CSSи HTML-файлы находятся в папке HTML, и оба они находятся в папке с именем XYZозначает, что мы называем CSS-файлы в HTML как

<link rel="stylesheet" type="text/css" href="./../CSS/style.css" />

Здесь ..перемещается вверх HTML
и .ссылается на текущий каталогXYZ

--- по этой логике вы бы просто ссылались как:

<link rel="stylesheet" type="text/css" href="CSS/style.css" />

3
Второе упоминание "CSS/style.css"у меня не сработало, может вы имели ввиду "../CSS/style.css"?
ajax333221

-1

Что касается краткого справочного списка, в частности, вы можете использовать следующее:

\. \ Root Directory + текущий каталог (буква диска)

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