Expressjs静态文件无法正常工作

我的控制器

exports.index = function(req, res){ var info = {title: 'Index'}; res.render('index' , info); }; exports.about = function(req, res){ var info = {title: 'about'}; res.render('about' , info); }; exports.post = function(req, res){ var info = {title: 'Post'}; res.render('post' , info); }; 

我的路线。

 var controller = require('../controllers/controller'); var router = require('express').Router(); router.route('/').get(controller.index) router.route('/posts/:slug').get(controller.post) router.route('/about').get(controller.about); module.exports = router; 

Server.js

 var express = require('express'); var bodyParser = require('body-parser'); var exphbs = require('express-handlebars'); var router = require(__dirname + '/routes/router'); var app = express(); app.set('views', __dirname + '/views'); app.engine('handlebars', exphbs({defaultLayout: 'main'})); app.set('view engine', 'handlebars'); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); var port = process.env.PORT || 8090; app.use('/', router); app.use(express.static(__dirname + '/public')); app.listen(port); 

问题

当我得到http://localhost:8090/http://localhost:8090/about我的静态文件的工作。

但是,如果我访问的任何职位,例如http://localhost:8090/posts/lorem-ipsum我在浏览器控制台中得到GET error 。 (尝试从pathhttp://localhost:8090/posts/css/style.css服务器文件)

你必须首先提供静态文件,然后你的路由,就像这样切换线路:

 app.use(express.static(__dirname + '/public')); app.use('/', router);