11

Rails アプリを Heroku にプッシュしましたが、引き続き次の問題が発生します。

メインの css.scss ファイル (assets/stylesheets 内) または assets/images 内の画像に変更を保存し、git にプッシュし、それを heroku にプッシュして、ページをリロードしますが、これらのアセットが変更されていないことがわかります。まったく読み込まれました。

これはローカル サーバーでもわずかな問題でしたが、次のように入力します。

rake assets:precompile

ローカルサーバーのリロードは通常機能しましたが、

heroku run rake assets:precompile

その後、再プッシュしても何も起こりません。私は情報を求めて釣りをしましたが、特に役立つものは見つかりませんでした。

注目すべきは、私のconfig/application.rb (これらのいくつかは釣りの結果です):

# Enable the asset pipeline
config.assets.enabled = true

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

config/environments/production.rbで:

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

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

# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true

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

さらに興味深いことに、herokuにプッシュすると、とりわけ次のように表示されます。

Preparing app for Rails asset pipeline
       Detected manifest.yml, assuming assets were compiled locally
-----> Rails plugin injection
       Injecting rails_log_stdout
       Injecting rails3_serve_static_assets

Installing dependencies using Bundler version 1.3.0.pre.5
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment

私は Rails 3 で学びましたが、アセット パイプラインが以前のバージョンで利用可能だったものとどのように異なるのかよくわかりません。構成ファイルに重複した設定や矛盾した設定を入れていて、ばかげていたら申し訳ありません。

助けていただければ幸いです。これは頭​​の痛い問題です。

4

1 に答える 1

13

ローカルでコンパイルしたアセットを git に追加してプッシュした結果、Heroku がプッシュ時にアセットをコンパイルしていないようです。public/assets ディレクトリを git に追加していないことを確認してください。

于 2013-02-05T00:01:43.290 に答える