質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2027閲覧

[rails3.2] production deployにて各サーバーでassets:precompileが走るのをどうにかしたい(遅いので)

tos-miyake

総合スコア23

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2015/07/02 03:26

編集2015/07/02 06:37

目的

production環境でのassets:precompileをやめて、デプロイを高速化したい

詳細

rails3.2で複数台のproduction環境にcapistranoでdeployしています。

assetsはcdnを利用しているので、production環境でassets:precompileは必要ないのですが、
public以下にファイルがないとエラーになるので、現状precompileしています。

asset_syncなどを利用すると似たようなことが出来そうなのですが、
cdnを利用する形で同じことは出来ないでしょうか。

追記

cdnからassetsを読み込むため、production環境でpublicの配下にassetsファイルがなくても
エラーにならない設定などがあれば教えていただきたいなと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

実際に試していないので、正確なことはいえませんが、
「複数あるproductionサーバー上でそれぞれprecompileするのをやめたい」
というのが目的であると解釈します。

precompileしたassetsをソース管理ツールに入れて、
precompile済みのものをそのままデプロイするという方法はどうでしょうか?

RailsGuideに乗っていた方法です。

RailsGuide AssetPipeline production環境の場合
ここの「4.2 ローカルでプリコンパイルを行なう」が参考になるのではないでしょうか?

投稿2015/07/02 06:24

rifuch

総合スコア1901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tos-miyake

2015/07/02 06:28

回答ありがとうございます。 意図は解釈して頂いたとおりです。 自分としてはソース管理に、機械的に変換されるものを含めたくないという気持ちと デプロイ時に人間が行わなければいけないタスクを残したくないなと思っています。 解決策が見つからないようであれば、ご提案頂いた内容を試してみようと思います。 ご回答ありがとうございます。
rifuch

2015/07/02 06:31

確かに、ソース管理にプリコンパイル済みファイルを入れるのには抵抗がありますよね。 よくわかります。 この話題、私も興味がありますので、 別の解決法がわかりましたら、是非ここに書き込んでください。
tos-miyake

2015/07/02 06:39

承知しました。 進展があれば、追記したいと思います。 ご回答頂ありがとうございましたm(__)m
rifuch

2015/08/19 10:14

参考になりそうなサイトを見つけました。 http://hakutoitoi.hatenablog.com/entry/2013/03/06/013753 ”Capfileでdeploy/assetsの読み込みをしている場合はコメントアウトする” これだけでOKそうです。 事前にmanifest.ymlなんかはGitにコミットする必要がありそうですが。 CDN使ってないのですが、今後使う可能性があるので、試してみた結果を教えていただければ幸いです。
tos-miyake

2015/09/15 08:51

コメント頂いていたのに気づいていなかったです。 ありがとうございます。 頂いた情報のように、結局asset_syncというGemを利用する流れになりました。 手動のassets:precompileが手順で増えたのですが、JenkinsのJobで自動化することで、 運用負荷をなくしました。 別途問題として、asset_syncではgzipファイルと通常のファイルを同時にcdnにアップロードするオプションが無かったので、モンキーパッチを当てて対応するなどを行いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問