Javascript node.js-静态文件CSS/js在express中不工作
我知道很多人都问过同样的问题,但我就是不能让这一切对我起作用 我正在尝试制作一个socket.IO应用程序,并且正在按照教程进行操作,但是无法将CSS和JS加载到页面中。应用程序总是发送html页面 我的文件夹结构Javascript node.js-静态文件CSS/js在express中不工作,javascript,css,node.js,express,socket.io,Javascript,Css,Node.js,Express,Socket.io,我知道很多人都问过同样的问题,但我就是不能让这一切对我起作用 我正在尝试制作一个socket.IO应用程序,并且正在按照教程进行操作,但是无法将CSS和JS加载到页面中。应用程序总是发送html页面 我的文件夹结构 ./server.js ./public /css /styles.css /js /client.js /index.html My Server.js文件包含: var express = require('express
./server.js
./public
/css
/styles.css
/js
/client.js
/index.html
My Server.js文件包含:
var express = require('express');
const socketIO = require('socket.io');
const path = require('path');
const PORT = process.env.PORT || 3000;
const INDEX = path.join(__dirname, '/public/index.html');
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
const server = express()
.use((req, res) => res.sendFile(INDEX) )
.listen(PORT, () => console.log(`Listening on ${ PORT }`));
const io = socketIO(server);
在我的index.html文件中,我这样调用css和js:
<link rel="stylesheet" type="text/css" href="/css/styles.css" />
<script src="/js/client.js"></script>
为什么要使用两个express变量
app
和server
试试下面的方法
const socketIO = require('socket.io');
const path = require('path');
const INDEX = path.join(__dirname, '/public/index.html');
const PORT = process.env.PORT || 3000;
var express = require('express');
const app = express()
.get('/', function (req, res) {res.sendFile(INDEX)})
.use(express.static(__dirname + '/public'))
.listen(PORT, () => console.log(`Listening on ${ PORT }`));
const io = socketIO(app);
这将有助于:
const express = require('express');
const app = express();
const http = require('http').Server(app);
const socketIO = require('socket.io')(http);
const PORT = process.env.PORT || 3000;
app.use(express.static(__dirname + '/public'));
http.listen(PORT, () => console.log(`Listening on ${ PORT }`));
您的代码无法工作,因为
.use((req,res)=>res.sendFile(INDEX))
始终将INDEX.html
发送到客户端的任何请求 进入“网络”选项卡,查看请求状态在chrome devtools上查找网络怎么样?请求url是什么?错误是什么?您会遇到什么错误?您确定已正确设置服务器根目录吗?您是否尝试过相对路径包含?这怎么行?这将安装一个中间件,该中间件将为每个路由调用res.sendFile(INDEX)
,并且不会调用next()
,因此express.static()
中间件将永远不会被调用。@jfriend00进行了更正。谢谢你指出这一点。太好了,这是正确的。谢谢你的帮助。