【问题标题】:When does "src" in script tag reference a resource on local filesystem (vs. non-local)?脚本标签中的“src”何时引用本地文件系统(与非本地)上的资源?
【发布时间】:2016-01-06 14:04:16
【问题描述】:

如果我有一个带有这样的脚本标签的 HTML 页面:

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

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

我了解./xxx.js URI/URL 引用了“当前目录中名为'xxx.js' 的文件”,但是何时(在什么条件下)“当前目录”表示本地文件系统上的当前目录客户端/浏览器正在运行?

只有在从本地文件系统中检索到包含 &lt;script&gt; 标记的 HTML 文件时才会出现这种情况?

【问题讨论】:

  • 我很想知道这个问题是从哪里来的。您是否遇到过只能由浏览器错误地尝试从本地文件系统而不是服务器加载来解释的神秘现象?

标签: javascript html src


【解决方案1】:

我了解到“./xxx.js” URI/URL 引用了“当前目录下名为‘xxx.js’的文件”,

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

这意味着它将在加载包含&lt;script&gt; 标记的文件所在的目录中查找。如果它是本地文件系统,它将从那里加载它。如果它是从网络服务器提供的,它将向网络服务器发出对该文件的新请求。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      好的,所以..

      src 属性将在给定的路径中查找文件始终是相对的,当您在本地加载网页时,它将在给定路径中查找该文件,无论是否该路径对您来说是本地的,或者如果它在 Web 服务器中是本地的。

      路径必须正确

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

      【讨论】:

        【解决方案4】:

        当src值为路径时,会被认为是本地的,可以是相对路径也可以是绝对路径:

        相对路径示例

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

        绝对路径示例

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

        远程时,src 的值为http://yourappsite.com/route/file.jpg 之类的 URL

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-09-04
          • 2012-05-30
          • 1970-01-01
          • 1970-01-01
          • 2014-11-24
          • 1970-01-01
          • 1970-01-01
          • 2011-08-05
          相关资源
          最近更新 更多