web-dev-qa-db-ja.com

内部でExpressを使用するAtom Electron

Expressを実行しているアプリケーションがあり、 electron を使用して配布しようとしています。

これでデバッグ中の電子を実行します:

_/path/to/electron/Electron.app/Contents/MacOS/Electron path-to-my-app
_

私のアプリケーションは完全に正常に動作します。 Expressはサーバーを起動し、すべてが機能します。メインウィンドウはmainWindow.loadUrl('http://localhost:3000/');を使用して正しく開きます。

distributionチュートリアル(前にリンク)に従うと、アプリケーションリソースを次の場所にコピーします。

_/path/to/electron/Electron.app/Contents/Resources/app
_

しかし、Electron.appを実行すると、メインウィンドウに_Cannot GET /_が表示されます...しかし、その理由はわかりません。

何か案は?

私の唯一の考えは、process.cwd()がここでドキュメントルートを定義するのに正しく役立っていないということです。

_//configure Express to default web requests to /workspace/ folder
expressApp.use(express.static(process.cwd() + '/workspace'));
_

しかし、その場合、私はそれを回避する方法がわかりません。

12
arthurakay

expressは、何らかの理由で私のドキュメントルートマッピングが気に入らなかったことがわかりました。

使用するのではなく:

//configure Express to default web requests to /workspace/ folder
expressApp.use(express.static(process.cwd() + '/workspace'));

私は代わりにこれを使用します:

expressApp.use(express.static(path.join(__dirname, 'workspace')));
19
arthurakay

process.cwdを使用せず、代わりにprocess.resourcesPathを使用してください。

1
Ana Betts