【发布时间】:2020-06-11 23:05:21
【问题描述】:
我将功能齐全的本地 php/nodejs 应用程序部署到现在已损坏的 heroku。 heroku 的 php 文档中的 echo '<script src="/socket.io/socket.io.js"></script>'; 返回 Uncaught SyntaxError: Unexpected token '<'。来一探究竟,cdn是连不上的。 heroku 服务器实际上是试图在控制台中返回一个带有路径 /socket.io/socket.io.js 的脚本。当然该文件不存在,所以它返回一个 php 文件(不是它包含的文件),因此 SyntaxError: Unexpected token '<' 因为它返回的随机文件中的 html。我将 php 和 nodejs heroku buildpacks 添加到我的应用程序中。我明白发生了什么,只是不知道为什么或如何解决它。
【问题讨论】:
-
仅供参考,链接
<script src="/socket.io/socket.io.js"></script>用于当您的页面来自的服务器是连接了服务器端 socket.io 的 Express 服务器时使用。如果您有该配置,那么服务器端 socket.io 将在链接/socket.io/socket.io.js处提供 socket.io 的客户端版本,并且该链接将起作用。我不知道您的 PHP 配置如何影响这一点,因为此链接所指向的服务器需要是其中的一个,而不是两者。如果正确安装了 socket.io 服务器端代码,则客户端代码不需要 CDN。 -
并且,让socket.io服务器以这种方式提供socket.io客户端,自动保持两个版本匹配。如果您为客户端使用 CDN,则每次升级服务器端 socket.io 代码时都必须修改 CDN 链接以保持两个版本同步(如果您忘记了,这是一种破坏站点的简单方法)。
-
那么问题是我没有使用 express 来返回我的页面,所以 src 路径不起作用。我完全明白了,现在。我有两个后端,而且我的电线交叉了。
标签: php node.js heroku socket.io