0

単一の VPS 上にいくつかの Rails アプリがあります。それらすべてにnginx、パッセンジャー、mysql、およびレール4を使用しています。2 つのアプリは実稼働環境の ENV で正常に動作していますが、私のアプリの 1 つが実稼働環境に切り替わっていません。開発中のままです。展開には min を使用します。私はその理由を理解しようとして、これについて髪を引っ張ってきました。

私の/etc/nginx/nginx.conf中で私は持っています

 passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.in$
 passenger_ruby /home/ME/.rbenv/shims/ruby;
 passenger_app_env production;

各アプリのサーバーブロックは次のように同一です(「mysite」をそれぞれのアプリ名に置き換えます)

server {
    listen 80;
   # listen [::]:80 ipv6only=on;

    server_name mysite.com www.mysite.com;
    passenger_enabled on;
    passenger_friendly_error_pages on;
    rails_env    production;
    root         /var/www/mysite.com/current/public;

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

誰でも助けることができますか?私はアプリのコードを何も変更していないと思いますが、私が変更した可能性のあるものを誰か思いつきますか? これを引き起こしている可能性のある変更可能なRailsファイルはありますか? ありがとう。

2014 年 7 月 13 日更新 サーバー上のアプリからファイルを完全に削除し、新たに再デプロイしましたが、まだ問題が発生しています。minaを使用してアプリをデプロイしていますが、実行mina deploy --traceしたところ、実行中と表示されます$ RAILS_ENV="production" bundle exec rake assets:precompile RAILS_GROUPS=assets。また、フッター ( Rails.env.production?) にテストを追加しましたが、false が返されます。助けてくれてありがとう。

更新 2014 年 7 月 14 日 そこで、それが自分のサーバーなのか自分のコードなのかをテストするために、rails server -e production自分の開発マシンで実行しました。私はまだRails.env.production?falseを返すことで同じ問題を抱えています。したがって、明らかに私のRailsコードの何かです。それでも、何を変更できたのかわかりません。

4

1 に答える 1

0

とても愚かな私、私はそれを理解しました。フッターにあるコードを投稿する必要がありました

<%= debug(params) if Rails.env = "development" %>
<%= sanitize("<b>Ruby</b>: #{RUBY_VERSION} <b>Rails:</b> #{Rails.version}") if Rails.env == "development" %>
<%= Rails.env.production? %>

問題は明らかにRails.env、IT が「==」と等しいかどうかを確認するのではなく、「開発」に割り当てていたことです。私はそれを変更しましたが、今ではすべてが良好です。

于 2014-07-18T19:19:00.427 に答える