【问题标题】:Node.js Express Errors [closed]Node.js Express 错误 [关闭]
【发布时间】:2020-07-02 04:19:58
【问题描述】:

你可以在这里找到我的整个 repo:https://github.com/austindickey/FriendFinder

下载目录后按照自述文件在您的计算机上进行初始化。

我的survey.html 页面似乎找不到onClick.js 文件。

错误消息 -- 加载资源失败:(onClick.js) 服务器响应状态为 404(未找到)

当我从 onClick 文件中取出我的代码并将它的脚本标记放在survey.html 页面的底部时,我得到一个不同的错误。

错误信息 -- ReferenceError: 找不到变量:需要

我完全迷路了。请帮忙。

谢谢。

【问题讨论】:

  • 您需要使您的问题更加集中和独立。在此处转储项目链接需要大量工作。
  • 代码看起来不完整。我看不到服务器在哪里有onclick.js 的任何路由。因此,当浏览器找到<script> 标记并从您的服务器请求onclick.js 时,您的服务器无法识别该请求并发送回404。通常会使用express.static() 指向某种public 目录包含将在您的网页中使用的公共 JS 文件、图像文件、CSS 文件等。
  • 默认情况下,nodejs 服务器根本不提供任何文件。现在,您有两条路由提供两个 HTML 文件,但是您没有用于这些 HTML 文件中使用的任何图像或脚本文件的路由,因此其他文件将不起作用。浏览器会找到他们的<script><img> 标签,然后向你的服务器询问这些资源,你的服务器只会给它一个404。

标签: javascript jquery html node.js express


【解决方案1】:

代码看起来不完整。我看不到服务器在哪里有onclick.js 的任何路由。所以,当浏览器发现这个标签时:

<script type="text/javascript" src="../onClick/onClick.js"></script>

然后浏览器从您的服务器请求 onclick.js,您的服务器无法识别该请求并发送回 404。通常会使用 express.static() 指向包含公共 JS 文件的某种公共目录,图像文件、CSS 文件等......将在您的网页中使用。 express.static() 中间件会在你的服务器文件系统的公共目录中查看是否可以找到传入的请求,如果可以,它将把它发送回浏览器。看来您在 HTML 页面中使用的任何图像或 CSS 文件都会遇到同样的问题,因为它们也没有路由。

回顾一下,nodejs 服务器默认不提供任何文件。现在,您有两条路由提供两个 HTML 文件,但是您没有用于这些 HTML 文件中使用的任何图像或脚本文件的路由,因此其他文件将不起作用。浏览器会找到他们的&lt;script&gt;&lt;img&gt; 标签,然后向你的服务器询问这些资源,你的服务只会给它一个404。你需要这些文件的路由或一些通用的express.static() 中间件来满足这些请求文件。

另外,请勿将"../onClick/onClick.js" 之类的路径用于其他资源。您没有指定服务器文件系统的路径。相反,您指定了一个顶级 URL,然后您的服务器被编程为在服务器磁盘上的特定目录中查找匹配文件。此 URL 可能类似于 "/scripts/onclick.js",然后您将配置 express.static() 路由以确保它适用于该 URL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 2022-01-17
    • 2014-04-18
    • 2012-02-25
    • 2016-12-12
    • 2013-03-20
    • 1970-01-01
    • 2013-01-14
    相关资源
    最近更新 更多