私はCairo-14スタック上で動作するHeroku上に新しいバージョンのRails 5アプリケーションを導入しました。デプロイ中にプリコンパイルされなかったので、手動でheroku run rake assets:precompile
を実行しました。それでも、古い資産が含まれているのがわかりますが、css
とjs
というファイルが必要です。HerokuがRails 5アプリケーション用の古い資産を提供しています
私のファイルはapp/assets
なので、そのディレクトリは資産をコンパイルするパスにはありません。
application.rb
とproduction.rb
のマイ設定:
config.assets.compile = true
# I checked the environment variable, it responds to 'enabled',
# which would return true for the option.
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
# Which I changed to expire old assets.
config.assets.version='1.1'
私はこれらを試してみましたが、彼らは動作しませんでした:
$ heroku restart
$ heroku run rake assets:precompile
$ heroku run rake assets:clobber
これらの奇妙なことは、私が$ heroku run ls public/assets
とチェックしたherokuサーバーの資産には影響しないということです。でも、それはこのことを言うにもかかわらず、$ rake assets:precompile
後:私は$ heroku run ls public/assets
を覗いたときに、私はまだ古い資産がそこに滞在ご覧
WRITING /app/public/assets/application-{VERY_LONG_HASH}.js
WRITING /app/public/assets/application-{VERY_LONG_HASH}.js.gz
WRITING /app/public/assets/application-{VERY_LONG_HASH}.css
WRITING /app/public/assets/application-{VERY_LONG_HASH}.css.gz
。
EDIT:私は、public/assets
にすべてのローカルの資産を削除$ rake assets:clean && rake assets:precompile
でそれらを再コンパイルし、私のgit
リポジトリにこれらの資産を含むことによってそれを解決しました。ここに1つの懸念事項があります:
私のアセットをオンザフライでコンパイルする責任はありませんか?私は自分のアプリケーションを配備するたびに私の資産を集めてはならないと思う。ありがとう。
あなたはそれを解決しましたが、あなたのローカルインスタンスでそれを実行して英雄に押し込むのではなく、あなたがアプリの「ヒーロー」インスタンス内で 'assets:clobber'と' assets:precompile'のようなすべての操作をしていたことが問題だと思います。あなたの質問については、私は英雄(1年)を使い始めて以来、それも不思議です。 – Sajan