11

私はノードとヘロクに非常に慣れていません。これはある種の単純な許可の問題などであると思われますが、追跡できないようです。

web.js ファイルが置かれているルート ディレクトリの 1 レベル下のサブディレクトリに、純粋な JavaScript ファイルがいくつかあります。ディレクトリを指定するための行が web.js ファイルに含まれています

app.use('/heatcanvas',express.static(__dirname+'/heatcanvas'));

Heroku Foreman を使用してアプリをローカルで実行すると、次の curl コマンドを実行すると、予期される js 応答が得られます。

 curl localhost:5000/heatcanvas/heatcanvas.js

ただし、Heroku にプッシュして、ブラウザで対応するライブ URL にアクセスすると、

www.example.com/heatcanvas/heatcanvas.js

私は以下を受け取ります:

 Cannot GET /heatcanvas/heatcanvas.js

Firebug や Heroku のログを確認すると、パスがローカルで実行されているものと一致している必要があるにもかかわらず、これらのファイルで実際に 404 エラーが発生していることがわかります。また、サード パーティの JavaScript が正常に機能していることにも言及する価値があります。問題があるのは、スクリプト タグの src 属性が私のサイトを指している場合のみです。スクリプトを利用できるようにするには、何をする必要がありますか?

4

1 に答える 1

7

特定のディレクトリを取得するには、 process.cwd()値を使用することをお勧めします

process.env.PWD = process.cwd()

web.jsの最初に

ファイルに簡単にアクセスできます。

できるよ

app.use('/heatcanvas',express.static(process.env.PWD+'/heatcanvas'));

使用する代わりに

__dirname

警告: web.jsのルートディレクトリでweb.jsを実行してください(Heroku web.jsはそのように実行されます)

于 2012-07-16T14:00:47.137 に答える