为什么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'))
从public
和files
夹中提供静态文件。 在您的示例代码中,您只能提供index.html
。