我有这个项目结构:
/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浏览器中,无需将前向斜杠添加到文件路径的启动中浏览器