2016-09-01 18 views
0

と静的なコンテンツを提供し、私はしかし、私は自分のLinux(Ubuntuの14.04)上でそれをアップロードしようとしたとき、これは動作しますNodeJS困難Express.js

var express = require('express'); 
var app = express(); 

app.use(express.static('app')); 
app.use('/bower_components', express.static('bower_components')); 

app.listen(3000, function() { 
    console.log("Listening on :3000"); 
}); 

に私のWindows 10の開発マシン上で簡単なNodeJSとExpressサーバを走りましたボックスには、/appの直下にあるファイルのみが表示され、サブフォルダは表示されません。

Linuxマシンでは、私がノードバージョンv0.10を実行していたので、v4.5.0に更新しました。私のWindowsマシンはv4.4.4です。

私はそれが許可に関連するかもしれないという考えを持っていたので、私はそれらを設定しようとしましたが、役に立たなかった。

ファイル構造は、この

├───api 
├───app 
│ ├───assets 
│ │ ├───css 
│ │ └───images 
│ └───scripts 
│  ├───auth 
│  ├───directives 
│  ├───filters 
│  ├───home 
│  ├───i18n 
│  └───services 
├───bower_components 

誰もが問題と同じ種類のをしてきたように見えますか?

+0

あなたのアプリの実際のファイル構造を投稿できますか? –

+0

@DaveV今更新されました – NicT

+0

Linuxで 'chmod'と' chown'を使うときは、 '-R'フラグを使って権限がサブディレクトリに再帰するようにしてください。 –

答えて

1

私はあなたが好きなようにnodeJSのための痛みを伴うことができます、その問題は唯一の問題は、ファイルにすべてを置くと思うそのパスが指定されていません。

https://expressjs.com/en/starter/static-files.html

あなたがapp.use(express.static('app'));を行う場合dierectory app/ディレクトリ(または極端な場合にnodeJsインストールの実行フォルダ)で注入されます。私の心に来るだけの事はexpress.static前__dirname + '/app'を追加することです:app.use(__dirname + '/app', express.static('app'));

__dirnameは、現在実行中のスクリプトが


に存在するディレクトリの名前が含まれているモジュールのスコープ内nodeJS変数であります

これが何かを変更している場合、これにすべて一致するように試してください:What is the difference between __dirname and ./ in node.js?