我已經設置了一個配置文件來存儲應用程序路徑,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');
};
應用程序對象(var app = express();)的console.log在我的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