为什么CSS和Bootstrap元素随着节点快递服务器消失?

我首先做了这样一个基本的节点服务器:

var connect = require('connect'); var serveStatic = require('serve-static'); connect().use(serveStatic(__dirname)).listen(8080, function() { console.log('Server running on 8080...'); }); 

然后我用这样的快递服务器取代它:

  var express = require("express"); var app = express(); var path = require("path"); app.get('/',function(req,res){ res.sendFile(path.join(__dirname+'/index.html')); }); app.use(express.static("public")); app.listen(8080); console.log("Running at Port 8080"); 

第一个,一切正常。 CSS,JQuery,图片等等,但是第二个,我的一些风格元素完全消失了,无法到达网站上的图片。 我错过了什么? 我该如何解决?

您没有提供静态文件。

 app.use(express.static("public")) 

这将直接服务于/public server的根目录下的所有文件。 如果你想在/static服务他们,你需要修改一下代码。

 app.use("/static", express.static("public")) 

文件结构

 ├── node_modules ├── package.json ├── public | └ style.css | └── server.js 

server.js

 var express = require("express") var app = express() app.use(express.static("public")) app.listen(3333) 

运行server.js后,你应该可以访问http:// localhost:3333 / style.css (以及/ public目录下的其他所有文件)

为了提供静态文件, 请查看https://expressjs.com/en/starter/static-files.html ,其中显示您可以使用:

 app.use(express.static('public')) app.use(express.static('files')) 

publicfiles夹中提供静态文件。 在您的示例代码中,您只能提供index.html