我已经设置了一个配置文件来存储我的 Express 应用程序的应用程序路径、cookie 秘密等设置。问题是它似乎忽略了我的视图路径目录设置。
配置.js:
...
exports.server = {
port: 3000,
cookie_secret: ".....",
path: "/var/www/onmynode-dev/"
}
...
app.js:
...
app.set('views', path.join(config.server.path, 'views'));
app.set('view engine', 'html');
app.engine('html', require('express3-handlebars')({defaultLayout: "default.html"}));
...
路线设置如下:
app.get('/', routes.index);
该视图是从请求中调用的,如下所示:
exports.index = function(req, res){
res.render('index');
};
app 对象的 console.log (var app = express();) 位于 app.js 文件的最后。
...
settings:
{ 'x-powered-by': true,
etag: true,
env: 'development',
'subdomain offset': 2,
view: [Function: View],
views: '/var/www/onmynode-dev/views',
'jsonp callback name': 'callback',
'json spaces': 2,
port: 3000,
'view engine': 'html'
},
...
因此,看起来视图设置正确,但在运行应用程序并加载页面时,我们得到以下信息:
500 Error: ENOENT, open '/home/user/views/layouts/default.html'
因此,无论我如何设置,它似乎都在使用 __dirname 变量。问题是如何调试/解决这个问题?