点斜线的行为与遗漏有什么不同吗?

时间:2014-01-17 23:03:14

标签: javascript unix

这更是一个好奇的问题。在JavaScript和HTML中,点斜杠./(当前的工作目录)是否曾经引起不同于遗漏的行为?

我假设它确实如此,否则它永远不会被使用。但我从来没有遇到过这种情况。

例如,在javascript中:

var config = require('./config.json');

VS

var config = require('config.json');

都是相对的并且引用同一个文件。它不是的任何情况?

1 个答案:

答案 0 :(得分:1)

是的,这可能取决于您正在运行的环境以及处理URL / filePath的内容。

在您的示例中,require用于查找文件路径。例如,在node.js中的require中指定文件路径时,如果在当前目录中找不到该文件名,则该脚本将在几个位置查找文件名,向下查看目录链文件,直到确定该文件不存在于任何这些位置。点击此处:http://nodejs.org/api/modules.html#modules_file_modules

在这种情况下,使用./显示位置意味着node.js require会明确指示在何处查找文件,并且不会在其他任何位置查找。如果它不在当前目录中,将立即返回错误。

但是,对于HTML,通常浏览器只会查找与发出文件请求的HTML文件相同的URL路径,因此<script src="file.js"></script>通常会产生与{{1}相同的结果}。我想不出一个不会的例子。

我不能对客户端javascript库说同样的话,因为它还取决于这些库如何搜索文件。在客户端使用<script src="./file.js"></script>,如果当前工作目录没有,则可以设置回退位置来搜索文件:http://requirejs.org/docs/api.html#config-paths

所以要回答,这取决于解释文件路径的函数/方法!