実稼働サーバーでの資産のプリコンパイルは非常に遅いです。そこで私は開発マシンでそれらを再コンパイルし、Amazon S3にアセットをアップロードすることを決めました。jammit
。すべてが行われるが、私はいくつかの否定的問題を抱えています:Rails 3&開発/生産モードでの資産パイプライン
- 私は
git
制御にpublic/assets
ディレクトリを含める必要があります。プロダクションサーバーでpublic/assets
ディレクトリが空の場合 - 私が開発マシンで資産をプリコンパイルすると、圧縮された形でHTMLに含まれているので、jsコードが重複しています。プリコンパイルされた
application.js
がこのコードを中断するため、jを変更しても効果はありません。
私の開発プロセスは、以下のステップが含まその方法:私はいくつかの変更に
- 削除プリコンパイル資産をto S3 by
jammit-s3
- アセットを含む変更をコミットしてgitサーバーにプッシュする
- 展開カピストラーノによって
私の質問は以下のとおりです。
- は、それは私が
public/assets
ディレクトリにそれを持っている場合application.js
圧縮が含まれていない開発環境を設定することは可能ですか? - 空の
public/assets
ディレクトリで動作するように運用環境を設定することはできますか?アセットはS3サーバー上にのみ存在します。あなたが開発モードに切り替える前に、bundle exec rake assets:clean
:
生産モードの場合は 'config.action_controller.asset_host'を設定しましたが、サーバーはそれがなくても失敗するため、' public/assets'パスにプリコンパイルされたアセットを持っていなければなりません。 – ka8725
いくつかの異なる設定同様に。 production.rbを投稿することができますか?あなたがしたこととしなかったことを伝えるのは本当に難しいですから。 Railsのアセットの使用を最小限に抑えるようにしてください: 'config.assets.compile = false' それでは、どうしてもそれらを生成しようとはしません。 – tombruijn
また、サーバーはどのように失敗しますか?リモートのasset_hostを登録せず、公開/資産ディレクトリをチェックしますか?それは実際には、アプリやasset_hostからそれらを提供していますか? – tombruijn