0

アセット パイプラインを使用するようにアプリケーションを移行しようとしているので、(組み込みの Webrick サーバーを使用して) ローカルで変更をテストしています。私の production.rb は次のようになります。

  # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = true

  # Compress JavaScripts and CSS
  config.assets.compress = true

  # Don't fallback to assets pipeline if a precompiled asset is missed
  config.assets.compile = false

  # Generate digests for assets URLs
  config.assets.digest = true

注、config.serve_static_assets = true

これは、実行できるという点で完全に機能します

rm -rf tmp
rm -rf public/assets
RAILS_ENV=production bundle exec rake assets:clean
RAILS_ENV=production bundle exec rake assets:precompile 
rails server -p 3500 -e production

私のローカルマシンでは、すべてが正常に読み込まれます。ただし、変更を実稼働 Apache サーバーにプッシュしたいので、Apache にアセットを提供させたいので、次のように設定します。

config.serve_static_assets = false

ローカル ボックスに実稼働 Rails サーバーをロードしようとすると、静的アセットがロードされません。これが予想される動作であるかどうかはわかりません (つまり、Rails に静的アセットを提供しないように指示していますが、そうではありませんが、それらを提供する何かが必要です)。

だから私の質問は、ローカルの本番レールサーバーを実行しながら、どうすればconfig.serve_static_assets = false自分の中に入れることができますか? production.rb私が求めていることは可能ですか、それとも賢明ですか?

ありがとう

注: Rails 3.2.11 を使用

4

1 に答える 1

0

とともにrake assets:precompile、Web サーバーにパブリック フォルダーを提供するように指示する必要があります。

展開に Passenger を使用していますか?

http://www.modrails.com/documentation/Users%20guide%20Apache.htmlを参照してください。特に:

Listen *:80
NameVirtualHosts *:80
....

LoadModule passenger_module /somewhere/passenger-x.x.x/ext/apache2/mod_passenger.so

PassengerRuby /usr/bin/ruby
PassengerRoot /somewhere/passenger/x.x.x
PassengerMaxPoolSize 10

<VirtualHost *:80>
    ServerName www.foo.com
    DocumentRoot /webapps/foo/public
    RailsBaseURI /rails
</VirtualHost>

<Directory "/webapps/mycook/public">
   Options FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>
于 2013-01-29T10:01:34.050 に答える