为什么 <script> src 中的路径,以单斜杠开头会导致错误?



我有这个项目结构:

/root
  /static
    script.js
  page.html

此代码:

<html>
    <head>
        <script src="/static/script.js"></script>
    </head>
    <body>
        ...
    </body>
</html>

导致:

Loading failed for the <script> with source “file:///static/script.js”.

为什么?我希望它可以在当前目录中搜索static文件夹(即root(。

在这种特殊情况下产生了错误,因为我刚刚在计算机上的浏览器中打开了 page.html(即我没有通过服务器使用它(,因此解释了 /作为本地机器的根。如果我已经服务了该项目,那么/将被解释为项目的根,并且没有错误。


更详细的解释/插图。
给定此结构:

/root
  /static
    script.js
  page.html

以下是不同的路径(在page.html中(将参考:

  • / - 根目录,可能均值/root,但也可能意味着当前环境的根(请参阅此答案开头的说明(
  • ./ - 当前(page.html居住的一个(目录,碰巧在这种情况下是/root
    • 值得一提的是,在当前目录中引用某些文件时,可以完全省略./;因此./static/script.js等于static/script.js

我得出了此答案所需的理解,来自:

  • aayush对当前问题的回答
  • 这个答案,我的另一个问题
  • 注释对此答案

错误存在错误,因为系统的根目录中没有此类文件。

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

您可以在此处找到静态文件服务器的列表。

使用Node.js的HTTP-Server。

在您的"/root"目录中打开一个终端并运行以下命令:

npm install -g http-server http-server -p 8000

然后,您可以在http://localhost:8000/page.html

访问page.html文件

如果您的根文件夹中有任何目录,并且 js> js 文件中的文件,您必须仅使用文件夹名称,然后是文件名,如:

folder-name/filename.js 

因为在Web浏览器中,无需将前向斜杠添加到文件路径的启动中浏览器

浏览器

相关内容

  • 没有找到相关文章

最新更新