質問

生産サーバーのアセットをプレシャルするのは非常に遅いです。そこで、私は開発マシンでそれらを再コンパイルし、資産をAmazon S3にアップロードすることにしました jammit. 。すべてが完了しましたが、私にはいくつかのネガティブな問題があります:

  1. 含める必要があります public/assets ディレクトリへ git コントロール。 if public/assets 生産サーバーの場合はディレクトリが空です
  2. 開発マシンのアセットを事前コンパイルする場合 application.js HTMLには圧縮されているように含まれており、そのようにしてJSコードを複製しました。 JSを変更すると、事前コンパイルされていないため、効果がありません application.js このコードを中断します。

そうすれば、私の開発プロセスには次の手順が含まれています。

  1. JSまたはCSSを変更する場合は、事前コンパイルされた資産を削除します
  2. いくつかの変更を行います
  3. プリコンパイルアセット
  4. アセットをS3にアップロードします jammit-s3
  5. 資産を含む私の変更をgitサーバーにコミットしてプッシュします
  6. Capistranoによる展開

私の質問は次のとおりです。

  1. 開発環境を構成することは可能ですか? application.js 私がそれを持っているなら public/assets ディレクトリ?
  2. 空の環境を構成することは可能ですか public/assets ディレクトリ?アセットはS3サーバー上のみです。
役に立ちましたか?

解決 2

GitignoreにAssets Dirを含めることでこの問題を解決し、1つのファイルのみを除外しました - public/assets/manifest.yml そして、生産サーバーは現在正しく動作します config.action_controller.asset_host = "http://assets.example.com" 作品。それは必要です manifest.yml ファイル

他のヒント

質問1については、実行以外の恒久的な解決策を知りません。

bundle exec rake assets:clean

開発モードに戻る前に。アセットパイプライン全体をオフにすることなく、開発中の資産を無視できるかどうかを確認することに興味があります。

Production.RBには、2番目の質問のオプションがあります。

# Enable serving of images, stylesheets, and JavaScripts from an asset server
config.action_controller.asset_host = "http://assets.example.com"

その後、リモートホストに依存しているため、Assets Directoryを無視する必要があります。それが役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top