29

まず、この回答によると、Heroku ではandの:cache => trueオプションは機能しません。これは本当ですか?私は時折動作することがわかりましたが、常にではありません (奇妙な!)stylesheet_link_tagjavascript_include_tag:cache => true

また、ここでの最善の解決策は何ですか? 理想的には、すべての CSS / JS をシームレスに組み合わせて縮小します。Heroku Asset Packagerはこれを行うと主張しています -- より良いオプションはありますか?

4

8 に答える 8

23

Heroku で Jammit を使用しています。よく働く。ローカルでアセットを構築し、heroku にチェックインできます。使用する

jammit --force

現在のバージョン 0.5.1 には heroku での動作に問題がありますが、修正版は git://github.com/documentcloud/jammit.git からインストールできます。

Rails 3 を使用している場合は、バンドラー Gemfile で以下を指定します。

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

Rails 2.* の場合

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

幸運を。

于 2010-09-10T07:05:04.303 に答える
8

この場合、アセットをコンパイルしてパックし、それらを現在のコミットに追加する git pre–commit フックを追加すると便利です。

Jammit を使用した私の例は次のようになります ( .git/hooks/pre-commit)。

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

このように、すべてのアセットがパックされ、もう心配する必要はありません。

于 2011-04-11T17:30:31.407 に答える
4

GitHub にはこれに対する適切な回答があり、Heroku のデプロイ スクリプトを変更して統合できると確信しています。

http://github.com/blog/551-optimizing-asset-bundling-and-serving-with-rails

于 2010-02-06T19:49:11.207 に答える
3

Heroku ではまだ試していませんが、Sprocketsが適しているかもしれません。また、過去には、より多くの幸運がありました

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

「真」の代わりに

于 2010-01-21T03:51:13.117 に答える
1

CSS / Javascriptを管理する別の方法ですが、Railsプラグインの靴箱をチェックすることをお勧めします。

Shoeboxは、結合、縮小、およびキャッシュを実行できます。

于 2010-01-21T19:00:20.033 に答える
0

プロジェクト名がすべてを物語っています。

http://github.com/amasses/heroku_asset_packager

于 2010-02-10T01:25:26.993 に答える
0

アセットを圧縮するための設定オプションは次のとおりです。

http://guides.rubyonrails.org/asset_pipeline.html#customizing-the-pipeline

config.assets.css_compressor = :yui
config.assets.js_compressor = :uglifier
config.assets.compress = true


gem 'uglifier'
gem 'yui-compressor'
于 2014-03-06T05:11:06.307 に答える
0

これを行うにはおそらくさまざまな方法がありますが、私にとってうまくいくのは、プッシュする前に縮小することです。次に、サブツリーを使用してビルド ファイルを「ソース」ファイルから分離します。したがって、たとえば、「dist」というフォルダーにビルドする場合、次のように heroku/master というサブツリーにプッシュできます。

git subtree push --prefix dist heroku master

dist フォルダーが無視されないようにすることを忘れないでください (多くの場合、デフォルトで無視されます)。それに応じて .gitignore ファイルを編集してください。

--prefix コマンドは、dist フォルダーがそのブランチの観点から効果的に「ルート」フォルダーになることを保証します。

于 2015-09-05T11:44:53.227 に答える