如果我有一个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