2016-07-11 5 views
0

イムビューを処理するために、私のnodejsマイクロサービスを処理するためにpm2を使用してexpress-handlebarsPM2がカレントディレクトリを変更しないようにする方法は?

var hbs = exphbs.create({ 
    defaultLayout: 'main', 
    helpers: { 
    ifeq: function(a, b, options) { 
     if (a === b) { 
     return options.fn(this); 
     } 
     return options.inverse(this); 
    }, 
    toJSON : function(object) { 
     return JSON.stringify(object); 
    } 
    } 
}); 

app.engine('handlebars', hbs.engine); 
app.set('view engine', 'handlebars'); 

は、直接アプリをLunching(ノードがapp.js)素晴らしい作品。しかし、それはPM2を使用して、私の昼食は、(PM2 app.jsを開始)私は取得する場合:

Error: Failed to lookup view "home" in views directory "/root/views"

/ルートに現在の作業ディレクトリの変更PM2 lunching /及びませんそこに私のアプリ以来、私がしようとハンドルバーからのエラーを得たときviewsディレクトリを開きます(これはappディレクトリにあります)。

pm2に現在の作業ディレクトリを伝えるか、またはexpress-handlebarsライブラリに相対ディレクトリを使わずに完全なディレクトリを伝えることでこれを修正する方法はありますか?

答えて

0

私はテンプレートの興亜とSWIGを使用しています - しかし、私は、アプリの設定でビューへのパスを含めるために必要な:

app.use(koaRender('./server/server-side-views', { 
     map: { html: 'swig' }, 
     cache: false 
})); 

私はそれはあなたのために同じのより多くのである疑いがあります。これは、問題を解決するが、今になっイムようだ

app.engine('handlebars', hbs.engine); 
app.set('view engine', 'handlebars'); 
app.set('views', __dirname + '/yourViewDirectory'); 
+0

:私はあなたのコードは、の線に沿って何かする必要がありますエクスプレスだと思うのエラー:ENOENT:そのようなファイルやディレクトリはありません、オープン「/ルート/ビュー/レイアウト/main.handlebars ' 私はapp.set(' layouts '、__dirname +'/views/layouts ')を試しました。しかし何も、おそらくパラメータはレイアウトではありませんか? – DomingoSL

+0

私は本当にあなたの詳細であなたを助けることはできません。そこにいくつかのコンソールログを追加して、どのパスが設定されているかを見て、期待通りのものかどうか確認してください – akaphenom

関連する問題