脚本标记中的"src"何时引用本地文件系统(相对于非本地)上的资源?



如果我有一个HTML页面,上面有这样的脚本标记:

<SCRIPT SRC="./xxx.js"></SCRIPT>

在什么条件下可以从本地文件系统获取/访问./xxx.js

我知道./xxx.js URI/URL引用了"当前目录中名为'xxx.js'的文件",但"当前目录"何时(在什么条件下)会指运行客户端/浏览器的本地文件系统上的当前目录?

只有当从本地文件系统检索到包含<script>标记的HTML文件时,才会出现这种情况吗?

我知道"./xxx.js"URI/URL引用了"当前目录中名为'xxx.js'的文件",

更准确地说,这意味着它将引用与当前文件相关的名为xxx.js的文件。

这意味着它将在加载包含<script>标记的文件的同一目录中查找。如果是本地文件系统,它将从那里加载。如果它是从Web服务器提供的,它将向Web服务器发出对该文件的新请求。

URI的协议决定了文件的请求方式。在您的情况下,路径是相对的,因此将使用请求html页面时使用的协议。假设html文件是index.html,如果您这样请求http://localhost/index.html的话。您的脚本文件不会是来自本地文件系统的服务器,而如果您这样请求file://path/index.html,您的脚本将从本地文件系统提供

好的,所以…

src属性将在给定的路径中查找文件。它始终是相对的,当您在本地加载网页时,它将在给定路径中查找该文件,无论该路径是您的本地路径还是web服务器中的本地路径。

路径必须正确

请记住,如果将javascript放在src的script标记中,那么放在脚本上的javascript将不起作用。

当src值为路径时,它将被视为本地路径,可能是相对路径或绝对路径:

相对路径示例

  • 文件夹/子文件夹/file.jpg
  • /parent_folder/file.jpg

绝对路径示例

  • /root/folder/subfolder/file.jpg

当它是远程的时,src的值将是一个类似http://yourappsite.com/route/file.jpg 的URL

最新更新