相对路径:
路径取决于当前文件目录。例如:
index.html
TestFolder \
|- test.js
CodeFolder \
|- code.js
innerPages \
|- inner-page.html
|- another-page.html
如果浏览器当前运行的文件名为inner-page.html,则可以通过相对路径“../CodeFolder/code.js”访问code.js。 ../ 表示“父目录”。
您可以多次使用“父目录” - ../../../SomeFolder/somefile.js = 向上 3 个目录,然后找到 SomeFolder 和文件 somefile.js。
绝对路径:
这意味着您访问根文件夹(如果服务器运行您的文件,则意味着服务器 public 文件夹)。绝对路径以“/”开头。例如:
绝对路径:“/CodeFolder/code.js”将访问code.js 文件,无论您尝试从何处访问它。
如果浏览器当前正在运行index.html。以上绝对路径将访问code.js。如果它当前正在运行inder-page.html,这个绝对路径将再次访问code.js。
请记住,如果这是一个客户端项目并且它在浏览器上运行,那么好的做法是使用绝对路径而不是相对路径。
假设您将code.js 用于index.html 和所有innerPages。将来您需要以某种方式重组项目的文件夹。比如需要在innerPages目录下添加子目录。
index.html
TestFolder \
|- test.js
CodeFolder \
|- code.js
innerPages \
|- user-pages \
|- inner-page.html
|- another-page.html
|- admin-pages \
|- ...
如果您使用的是真实路径会发生什么?例如:
您进入inner-page.html,并且使用了这条路径:"../CodeFolder/code.js"。
在这种情况下,此路径将不正确。
但是如果你使用绝对路径...例如:
"/CodeFolder/code.js" - 它仍然可以工作,因为"/" 表示根目录。不管你现在在哪里,这个路径都会在你的根目录下搜索CodeFolder。
加载脚本
正如@Krzysztof Trzos 所说,您可以使用jQuery's getScript() 函数轻松地从另一个脚本加载脚本。或者您可以查看他对 non jquery way 的评论的完整答案。