就 HTML 文件路径位置而言,“./”(点斜杠)指的是啥?
Posted
技术标签:
【中文标题】就 HTML 文件路径位置而言,“./”(点斜杠)指的是啥?【英文标题】:What does "./" (dot slash) refer to in terms of an HTML file path location?就 HTML 文件路径位置而言,“./”(点斜杠)指的是什么? 【发布时间】:2011-11-27 07:42:12 【问题描述】:我知道../
表示上路,但./
究竟是什么意思?
我最近正在阅读一个教程,它似乎只是指同一位置的一个文件,所以有必要吗?如果仅此而已,我可以不使用它吗?
【问题讨论】:
【参考方案1】:.
是当前目录的简写,在Linux和Unix中用于在当前目录执行编译程序。这就是为什么您在 Web 开发中很少看到它使用的原因,除了开源的非 Windows 框架,例如 Google Angular,它是由困在开源平台上的人们编写的。
./
也解析为当前目录,在 Web 中是非典型的,但在一些开源框架中支持作为路径。因为它解析为与 no path 相同的未使用的当前文件目录。示例:./image.jpg = image.jpg。同样,这是 Unix 操作系统的遗留物,出于安全原因,需要像这样的路径解析来运行可执行文件和解析路径。它不是典型的网络路径。这就是为什么这种语法是多余的。
../
是一个向上一个目录的传统网络路径
/
是您网站的根目录
以下这些路径解析是正确的...
./folder= folder
在网络路径解析中总是如此
./file.html = file.html
在网络路径解析中总是如此
./ = no path
空路径与网络世界中的./
相同
no path = /
如果您的文件在根目录中,则空路径与Web根目录相同
./ = /
仅当您位于根文件夹中时
../ = /
仅当您位于 web 根目录下的一个文件夹时
【讨论】:
【参考方案2】:关于路径
的快速简要回顾绝对路径
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 与文档在同一个位置,所以进入 assets 获取图片
../assets/image.jpg
从文档所在的位置转到一个文件夹返回../
并进入assets
../../image.jpg
转到两个文件夹返回,这是我的图片!
../../assets/image.jpg
转到两个文件夹返回 ../../
然后进入 assets
【讨论】:
有没有办法在不使用域名的情况下说“转到最终根目录,然后按照此路径”(即,如果您需要站点在暂存环境中工作)?还是你只需要做类似../../../../../../../../../../../../../.. /../../../../../../../../../../../../../../../../. ./../../images/image.jpg 并希望涵盖所有可能的情况? @Mark 如果我的问题没问题,您需要“返回(无限期)直到root,然后输入images
。参见相对路径和第三个示例/images/image. jpg
【参考方案3】:
参考快速参考列表,具体可以使用以下内容:
\.\ 根目录+当前目录(盘符)
【讨论】:
【参考方案4】:例如css文件在CSS
文件夹中,html文件在HTML
文件夹中,这两个文件夹都在XYZ
文件夹中,这意味着我们将html中的css文件称为
<link rel="stylesheet" type="text/css" href="./../CSS/style.css" />
这里..
向上移动到HTML
而.
指的是当前目录XYZ
---按照这种逻辑,您可以将其引用为:
<link rel="stylesheet" type="text/css" href="CSS/style.css" />
【讨论】:
第二个参考"CSS/style.css"
对我不起作用,也许你的意思是 "../CSS/style.css"
?【参考方案5】:
/
表示当前驱动的根目录;
./
表示当前目录;
../
表示当前目录的父目录。
【讨论】:
是否“header("Location: ../");"重定向到父目录? ./index.html 与 index.html 有何不同? 我有一段来自模板的代码,它包含././
这是什么意思?
@AaronFranke 翻译成英文,意思是“这个目录,这个目录”,所以它相当于./
(“这个目录”),./././
(“这个目录” , 这个目录, 这个目录"), ././././
等等。【参考方案6】:
您可以使用以下列表作为快速参考:
/ = 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/
【讨论】:
“这个位置”和“当前目录”有什么区别?谢谢。 @WebBrother,事实证明 ./ 仅在非严格文档类型模式下有效,而 .在两种模式下都可以工作,这是一个链接***.com/questions/296873/… 谢谢。这个清晰的解释只是解决了一个如此基本的问题,我不好意思大声问。【参考方案7】:./
是 working 文件所在的文件夹:
所以在/index.htm
./
是根目录
但在/css/style.css
./
是css文件夹。
记住这一点很重要,因为如果将 CSS 从 /index.htm
移动到 /css/style.css
,路径将会改变。
【讨论】:
这如何回答这个问题?显然,Simon Suh 理解 ./ 指的是引用文件所在的同一位置。那么问题的主要部分是:“为什么要使用它,是否有必要?”。我能够找到更喜欢“./file”而不是“file”的语法的唯一原因是 ./ 表示当前文件夹且仅表示当前文件夹。因此,如果有某种工具/编译器/等搜索文件,那么“./file”将仅在当前文件夹中搜索,而“文件”将搜索该工具配置为搜索的任何位置(例如根目录、当前文件夹等) 那么./abc.htm
和abc.htm
有什么区别?
@Teemoh 它们在 JS、HTML 和 CSS 中是一样的。 “./”是一种旧的编程约定,它延续到这些较新的语言中。在其他情况下,它们可能意味着不同的东西。例如。如果在操作系统中设置了“路径”,abc.exe 可能是一个文件,而 ./abc.exe 可能不是。
@MarcelToth 你真的应该发布这个作为答案!
“scripts/**/*.js”是什么意思?它是告诉我们选择脚本文件夹下的所有“js”文件吗?【参考方案8】:
是的./
表示您当前所在的目录。
【讨论】:
这有点误导。./thisfile.txt
并不总是等同于 /thisfile.txt
。这完全取决于代码在哪个目录中执行。
@JonathanNewmuis 是对的。/thisfile.txt 不是明确的 /thisfile.txt
那么如果代码在不同的地方执行,./
会引用原来的地方吗?【参考方案9】:
你是对的,你可以省略它。它仅对清晰有用。它存在和不存在之间没有功能上的区别。
【讨论】:
It's useful only for clarity.
或混淆,在 OP 的情况下 - 和我的。 :)
在html5中导入javascript文件时不能省略。例如,如果您在一个目录中有一个文件夹 js 和一个 index.html 文件:在 html 5 中声明的 是正确的,但如果您省略了 '. '符号,它不会加载文件。
@MaXi32 - 在您的示例中,<script src="js/main.js"></script>
将加载 HTML5 文件以及 ./js/main.js
【参考方案10】:
. = This location
.. = Up a directory
所以,./foo.html
就是 foo.html
。它是可选的,但如果脚本生成了路径,则可能具有相关性(与 脚本 的相关性,即与参考的工作方式无关)。
【讨论】:
【参考方案11】:是的,./
表示当前工作目录。您可以直接按名称引用文件,而不使用它。
【讨论】:
以上是关于就 HTML 文件路径位置而言,“./”(点斜杠)指的是啥?的主要内容,如果未能解决你的问题,请参考以下文章