客户端文件位置与节点服务器?
我正在尝试一个愚蠢的简单的聊天应用程序在这里: http : //socket.io/get-started/chat/
一切都很好,除了我想我会把index.html文件中的css和js分成不同的文件。 所以我有一个像这样的项目文件夹:
/myProject index.js index.html /node_modules /express /socket.io
所以在myproject文件夹中,我创build了客户端文件夹,并在其中放置了一个app.css和app.js:
/myProject /client app.css app.js
并切换我的HTML:
<link rel="stylesheet" href="/client/app.css" /> <script src="http://code.jquery.com/jquery-1.11.1.js"></script> <script src="/socket.io/socket.io.js"></script> <script src="/client/app.js"></script>
我重新启动节点服务器并运行索引,但是我的chrome检查器在/client
文件上有404个。
我试图将客户端文件夹移动到node_modules文件夹(以为这一定是在哪里得到它的socket.io参考),但是这并不这样做。
当节点服务器启动时,它提供了哪些本地文件夹(在这里使用Windows),以及如何添加其他客户端文件? 我不应该列出所有这些在包依赖关系我?
根据下面的答案,是的,使用快递(4.10.2)
出错:
参考错误:express没有定义
var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.use(express.static(__dirname + '/public')); app.get('/', function(req, res) { res.sendFile(__dirname + '/index.html'); }); io.on('connection', function(socket) { console.log('user connected'); socket.on('disconnect', function() { console.log('user disconnected'); }); socket.on('chat message', function(msg) { console.log('message: ' + msg); }); }); http.listen(3000, function() { console.log('listening on *.3000'); });
我假设你使用快递。
所以为了在Express中提供静态文件,你需要这个
https://expressjs.com/en/starter/static-files.html
app.use(express.static('client'));
希望这可以帮助。