Я установил конфигурационный файл для хранения настроек, таких как путь к программе, секрет cookie и т. П. Для моего экспресс-приложения. Проблема в том, что это, кажется, игнорирование моей настройки каталога пути просмотра.Экспресс, игнорирующий представление каталога
config.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');
};
console.log объекта app (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 независимо от того, как Я все наладил. Вопрос: как мне отладить/исправить эту проблему?
Можете ли вы дать нам то, что вы называете при рендеринге ваш взгляд? – SomeShinyObject
Спасибо, я добавил детали к вопросу. – onmylemon
Стоит отметить, что если я подключился к каталогу перед запуском приложения, он отлично работает. Поэтому я думаю, что где-то __dirname вводится как путь к представлениям. – onmylemon