0

この質問を見ましたが、何も役に立ちませんでした。ポート 80 にプロキシされるように構成しようとしています。これlocalhost:3000が私の nginx 構成です (と にsites-enabledありますsites-available):

server {
    listen 0.0.0.0:80;
    server_name fit-forms;
    access_log /var/log/nginx/fit-forms.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://localhost:3000;
        proxy_redirect off;
    }
}

IPにアクセスすると取得Cannot GET /します(これはDigitalOeanにあります)。静的ファイルは表示されません。これが私のエクスプレスコードです:

var express = require('express'),
  livereload = require('connect-livereload'),
  config = require('./config'),
  app = express(),
  env = app.get('env'),
  port = process.env.PORT || config.serverPort || 3000;

if (env === 'development') {
  app.use(livereload());
  app.use(express.logger('dev'));
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
}

app.use(express.compress());
app.use(express.urlencoded());
app.use(express.json());

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

app.listen(port);
console.log('Express server (' + env + ') running on port ' + port);

nginxの設定が不足していると思います..

4

1 に答える 1

1

私も同じ状況でした。

キーは次の値にあります。

__dirname + '/public'

たとえば、出力してみてください

res.send(__dirname + '/public')

おそらく問題の原因がわかります。

私の場合、nodejs アプリのカテゴリと public_html ディレクトリは同じレベルにあり、nodejs スクリプトはそれを見つけることができませんでした。

だから私はそれをこのように変更しました:

__dirname + '/../public'
于 2014-02-27T11:25:10.873 に答える