2009-12-11 16 views
29

まず、this answerによれば、とjavascript_include_tag:cache => trueオプションはHerokuでは機能しません。これは本当ですか?私は時折仕事に:cache => trueを発見し、常にではないました(変な!)HerokuでJS/CSSを組み合わせて最小化する最適な方法

また、最善の解決策は、ここ何ですか?理想的には、すべてのCSS/JSをシームレスに結合し、縮小します。 Heroku Asset Packagerはこれを行うと主張しています - より良い選択肢がありますか?

答えて

3

私はまだHerokuの上でそれを試していないが、Sprocketsはそのために良いかもしれません。また、過去に、私の代わりに「真」の

:cache => 'all.css' 
:cache => 'all.js' 

でより多くの運を持っていた

+1

スプロケットを使用する場合は、https://github.com/jeffrydegrande/sprockets_on_herokuを確認してください。 Sprocketsは、Rails 3.1にはデフォルトでバンドルされているので、必ず見るべきものです(まだRails 3に入っているかどうかは分かりません)。 – webmat

1

それはあなたのCSS/Javascriptを管理するための別の方法ですが、あなたはRailsのプラグインをチェックアウトすることができますshoebox

靴箱を組み合わせる又は縮小、およびキャッシングを行うことができます。

0

プロジェクト名はそれをすべて言う:

http://github.com/amasses/heroku_asset_packager

+0

しかし、これはパッケージ化された資産を '/ tmp'に置きます。http://docs.heroku.com/constraintsによると、必ずしも要求にこだわるわけではありません。 –

+0

Jammitを試しましたか? http://documentcloud.github.com/jammit/私は自分自身を試していませんが、これに切り替えた他の公共プロジェクトからいくつかのコミットを読みました。私はすぐにそれをテストしなければならないでしょう...プリコンパイルを選択せず​​、宝石に資産をコンパイルし、その下にあるファイルをすべて消去して、資産を再コンパイルするかどうかを確認してください。私はJammitのソースを確認するために読んでいないが、あなたが何か他のものを見つけない限り、それは価値がある。 – databyte

23

私はHerokuでJammitを使用しています。よく働く。地元の資産を作り、英雄にチェックインすることができます。あなたがRailsの3を使用している場合は//github.com/documentcloud/jammit.git

:現在のバージョン0.5.1は、Herokuの上で作業の問題を​​持っていますが、gitのからの修正版をインストールすることができます

jammit --force 

を使用あなたバンドラGemfileに以下のように指定します。Railsの2の

gem "jammit", :git => "git://github.com/documentcloud/jammit.git" 

*

config.gem "jammit", :source => "git://github.com/documentcloud/jammit.git" 

良いリュックk。

8

私は、Gitはコンパイルと資産をパックフックを事前にコミット追加すると、その後、現在のコミットに追加することがわかってきましたが、この場合に便利です。

jammit 
rake barista:brew 
git add public/assets/* 
git add public/javascripts/* 

このようにすべてのあなたの資産があなたのためにパックされますと、あなたはそれについてはもう心配する必要はありません:Jammitを使用して

鉱山は、この(.git/hooks/pre-commit中)のようになります。

0

あり、これを行うための様々な方法は、おそらくですが、どのような私の作品は、プッシュする前に縮小化することです。次に、サブツリーを使用して、ビルドファイルを「ソース」ファイルとは別に保存します。

git subtree push --prefix dist heroku master 

ちょうどdistのフォルダが無視されていないことを確認することを忘れないでください:あなたは「DIST」というフォルダにビルドするのであれば、例えば、次のようにHerokuのは/マスターと呼ばれるサブツリーにプッシュすることができます(デフォルトではしばしばです) - .gitignoreファイルを適宜編集してください。

--prefixコマンドは、distフォルダがそのブランチの観点から事実上 "ルート"フォルダになるようにします。

関連する問題