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);