这是我的项目结构
public/
css/
images/
js/
routes/
index.js
users.js
views/
AdminView/
layouts/
layout.hbs
index.hbs
我目前遇到的问题是无法在我的Node Express应用上加载正确的视图。这是我的一些代码
users.js
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond');
});
router.get('/admin', function(req, res, next) {
res.render(__dirname + 'AdminView/pages/tables/job-posts', {title: 'Admin Page'});
});
module.exports = router;
app.js *部分内容
// view engine setup
app.engine('hbs', hbs({extname: 'hbs', defaultLayout: 'layout' , layoutsDir: __dirname + '/views/layouts'}));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
// Render the main view static files
app.use(express.static(path.join(__dirname, 'public'))); // Render for /
app.use("/career", express.static(__dirname + '/public')); // Render for /carrer/
app.use("/career/form", express.static(__dirname + '/public')); // Render for /carrer/form
app.use("/users", express.static(__dirname + "/views/AdminView")); // Render for /users
// Problematic code below
app.use("/users/admin", express.static(__dirname + "/views/AdminView")); // Render for /users/admin
app.use('/', routes);
app.use('/users', users);
这是问题所在。当我尝试访问/ users / admin时,我不知道为什么它使用css,js和images渲染AdminView文件夹上的索引页面,而它应该呈现我在路由上指定的那个(AdminView / pages) /表/作业日志)。
但是,如果我评论上面有问题的行,它会加载我在路由文件中指定的html文件,但不会呈现静态文件。
旁注:
我尝试加载的文件位于下面的图片