2016-09-24 9 views
0

から正常に動作します:実行しているノードにのみ、すなわち、appディレクトリ

/var/www/html/ 
node server.js 

サイトが正常に動作します。

私は別のディレクトリからノードを起動しようとすると、それが実行されますが、間違ったルートを持っています

#(not in /var/www/html) 
node /var/www/html/server.js 

何が起こることは、正しいファイルが実行されているが、すべてのパスが台無しにしてしまうことがあります。ここで例えばエラーです:ビュー「ログイン」が

/home/ec2-user/views 

では見られないが、

/var/www/html/views 

にどのように私はこれを修正することができますので、

GET /auth/login 500 32.511 ms - 2206 
Error: Failed to lookup view "login" in views directory "/home/ec2-user/views" 

エラーは驚くべきことではありません動作?

明確化:私は成り上がり上でノードを実行するために永遠に設定しようとしていますので、

私はこの質問をしています。 サービスはupstartで正常に実行されますが、手動で同じ問題が発生し、サーバーが起動します。

答えて

1

これは、たとえば次のようなパスを定義した場合に発生します。以下のようなテンプレートエンジンのために:.

app.set('views', './views'); 

それはあなたがアプリを立ち上げ、そこからディレクトリを検索します。スクリプトのフォルダ内のビューのディレクトリを検索するために

app.set('views', __dirname + '/views'); 

はあなたのような__dirnameを使用する必要があります。ここでも説明されています:What is the difference between __dirname and ./ in node.js?

関連する問題