Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在<;脚本>;src,以单斜杠开头会导致错误吗?_Javascript_Html_Path_Filepath_Src - Fatal编程技术网

Javascript 为什么在<;脚本>;src,以单斜杠开头会导致错误吗?

Javascript 为什么在<;脚本>;src,以单斜杠开头会导致错误吗?,javascript,html,path,filepath,src,Javascript,Html,Path,Filepath,Src,我有这个项目结构: /root /static script.js page.html /root /static script.js page.html 此代码: ... 结果: Loading failed for the <script> with source “file:///static/script.js”. 为具有源的加载失败”file:///static/script.js”. 为什么呢?我希望它搜索当前目录中的静态文件

我有这个项目结构:

/root
  /static
    script.js
  page.html
/root
  /static
    script.js
  page.html
此代码:


...
结果:

Loading failed for the <script> with source “file:///static/script.js”.
为具有源的加载失败”file:///static/script.js”.

为什么呢?我希望它搜索当前目录中的
静态
文件夹(即
根目录
)。

如果您的根文件夹中有任何目录,并且您的js文件也在其中,那么您只需提及路径,其中包含文件夹名,然后是文件名,如:

folder-name/filename.js 
因为在web浏览器中,不需要在文件路径的开头添加正斜杠
浏览器,以便通过self将其删除。由于系统的根目录中没有此类文件,因此存在错误

这可以通过为
/root
文件夹提供服务并通过该服务器访问
page.html
轻松解决

您可以找到静态文件服务器的列表

使用
Node.js

在“/root”目录中打开终端并运行以下命令:

npm安装-ghttp服务器
http服务器-p8000


然后您可以访问
page.html
文件,网址为
http://localhost:8000/page.html

在这种情况下会产生错误,因为我刚刚在我的机器上的浏览器中打开了
page.html
(即,我没有通过服务器提供服务),因此,
/
被解释为本地机器的根。如果我已经为项目提供了服务,那么
/
将被解释为项目的根目录,并且不会出现错误


再详细一点的解释/说明。
鉴于这种结构:

/root
  /static
    script.js
  page.html
/root
  /static
    script.js
  page.html
以下是(在
page.html
中)将引用的不同路径:

  • /
    -根目录,它可能意味着
    /root
    ,但也可能意味着当前环境的根目录(请参阅本答案开头的说明)
  • /
    -当前(page.html所在的目录)目录,在本例中它恰好是
    /root
    • 值得一提的是,当引用当前目录中的某个文件时,
      /
      ;所以
      /static/script.js
      相当于
      static/script.js

我从以下方面获得了回答所需的理解:

  • ,回答我的另一个问题

在哪个路径下是page.htmlb因为这样的路径不存在问题是为什么它说的是
static/canvas.js
,而不是
/static/script.js
?如果删除斜杠,它不起作用吗?或者加上。。在它之前?html与static位于同一文件夹中,因此在执行/static时,他可能正在页面中查找文件夹。html@RadonirinaMaminiaina你是什么意思?错误消息在
file:///static/canvas.js
文件://
是协议,目标是
/static/canvas.js