当我的Node.js服务器在Heroku上运行时,找不到我的socket.js文件,但是当它在localhost上运行时,找到它。此外,尽管app.js文件与socket.js文件位于同一目录中,但无法找到它。我看过一些建议使用
的帖子app.use('/', express.static(__dirname));
但我猜这不是这种情况。
我的index.html文件:
<script src="/angular-socket-io/socket.js"></script>
<script src="/socket.js"></script>
<script src="/socket.io/socket.io.js"></script>
在其中,唯一找不到的是第二个目录(/socket.js),其中包含&#39;套接字工厂&#39; inside。 我的文件夹树如下;
-app
--assets
---app.js
---socket.js
请帮忙吗?
答案 0 :(得分:2)
只需将app.use(express.static(path.join(__dirname, 'app/assets')));
添加到主代码中,然后即可使用<script src="/socket.js"></script>
答案 1 :(得分:0)
我的JavaScript文件未初始化,因为我是如何在index.html中导入JQuery脚本的。 如果包含JQuery的JavaScript文件未初始化。确保使用 HTTPS 而不是 HTTP 导入它。
错误:
<script src="http://code.jquery.com/jquery-3.5.1.js"></script>
正确:
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
这解决了我在Heroku上缺少JavaScript文件的问题。