我的控制器
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
。 (尝试从路径http://localhost:8090/posts/css/style.css
服务器文件)
答案 0 :(得分:0)
您必须首先提供静态文件然后再提供路线,只需切换这样的行:
app.use(express.static(__dirname + '/public'));
app.use('/', router);