如果我启动服务器并转到localhost:4000,服务器会发出index.html。但是index.html没有加载它的style.css并且没有连接到服务器。但是,如果我双击本地index.html文档,它将连接到服务器。我的回答有什么问题?
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs')
app.listen(4000);
function handler (req, res) {
fs.readFile(__dirname + '/public/index.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
io.sockets.on('connection', function (socket) {...}
的index.html
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet",type="text/css" href="styles.css"/>
<script type="text/javascript" src="node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js">></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
</head>
<body>
<script>
var socket = io.connect('http://localhost:4000');
socket.on('connect', function(){...}
答案 0 :(得分:0)
您是否尝试过像这样引用socket.io.js?
<script src="/socket.io/socket.io.js"></script>
答案 1 :(得分:0)
在处理程序函数中,您似乎通过向用户提供index.html来响应所有请求。这就是为什么不返回CSS样式表和Javascript文件的原因。