Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 can';我不明白为什么在客户端控制台上找不到我的js文件_Javascript_Node.js_Path_Client - Fatal编程技术网

Javascript can';我不明白为什么在客户端控制台上找不到我的js文件

Javascript can';我不明白为什么在客户端控制台上找不到我的js文件,javascript,node.js,path,client,Javascript,Node.js,Path,Client,这可能是一个新手问题,请不要吝啬:D 我正在尝试将js文件添加到html页面,但无法正确加载它。这似乎是一个与路径相关的问题 在HTML页面中,我将文件链接到 <script src="../src/utils/mapbox.js"></script> 然后,在我的js文件上,我只是放了一个console.log来查看文件是否正确加载,但它不是:/ 我什么都试过了,但什么都没变 调试控制台的屏幕截图 debuggin工具的source选项卡的屏

这可能是一个新手问题,请不要吝啬:D

我正在尝试将js文件添加到html页面,但无法正确加载它。这似乎是一个与路径相关的问题

在HTML页面中,我将文件链接到

<script src="../src/utils/mapbox.js"></script>

然后,在我的js文件上,我只是放了一个console.log来查看文件是否正确加载,但它不是:/ 我什么都试过了,但什么都没变

调试控制台的屏幕截图

debuggin工具的source选项卡的屏幕截图

在第二张图片上,我看不到VSCode上的所有文件夹。这是因为那些文件是服务器端的,对吗?如果是,我如何解决这个问题/

这是VSCode中的文件夹结构


提前感谢。

src属性的值需要是JS文件的URL

如果使用相对URL,则它需要与HTML文档的URL相对

这与用于生成HTML的EJS模板和本地文件系统上的JS文件之间的路径不同


首先,需要为JS文件提供一个URL。您还没有展示您为Web编写的源代码,但是可以合理地假设您使用了Express.js
static
模块来访问
public
目录的内容

src
目录不在
public
内,因此它不可访问。它似乎也是一个包含服务器端源代码的目录,因此它不是保存客户端JS的合适位置

将客户端JS文件移动到
public
目录中的一个目录中

(如果您正在编写同构JS,那么您可以创建一个新目录,可能称为
shared
,并使用
static
将其公开)


完成后,您可以计算出JS文件的URL。

好的,我深入研究了这个问题,因此基本上,我混淆了客户端和服务器端。我查看了mapbox api文档,并立即单击了npm快速指南,但这仅适用于需要在服务器上渲染地图的有限情况。 我只需要遵循mapbox服务的WebJSAPI


所以,谢谢你的评论,我会尽量少学点东西,多学点东西!:)

您的本地文件夹结构是什么?index.html位于何处?您使用的是什么web服务器?它应该从哪个绝对URL共享JS?你做了什么来确保这一点?很抱歉,我忘了在VSCode上共享文件夹结构,请检查编辑的帖子在VSCode结构中css和img文件夹在哪里?看起来这些文件夹没有映射到web根目录。这些文件夹位于公用文件夹上,我已设置了公用路径,它们工作正常。现在我想我把服务器端和客户端链接搞混了。我需要学习如何在客户端链接js服务器端文件。希望我的陈述有意义。你是对的,我使用了公共路径const publicPath=path.join(\uu dirname,“../public”)const viewsPath=path.join(\uu dirname,“../views”)app.use(express.static(publicPath))我将尝试将文件移动到公共文件夹中,然后再次链接该文件。谢谢你的回答!我需要学习更多我想还有一件事,如果我将js文件移动到公用文件夹,我不能使用require来加载mapbox npm模块。。。你能给我一个提示吗?thanks@aitenlabs-倒数第二段涵盖了这一点。