9

Rails 3 アプリに Jammit をインストールしてから、Heroku にデプロイしようとしています。

Jammit Gem をインストールし、assets.yml を適切に構成しました。開発環境で動作します。しかし、私がherokuにプッシュしたとき、ファイルは404'ingでした.

Jammit の使用説明書には、「Rakefile やその他のスクリプト内で Jammit を簡単に使用できます。

require 'jammit'
Jammit.package!

私はそれがどこで/どのように機能するかに従っていません。Mac のように自分のサイト コマンドで Jammit を実行すると、コマンドが見つかりません。

Jammit を使用して本番環境に移行する方法を理解できる Jammit ユーザーはいますか?

ありがとう

4

5 に答える 5

6

Rails3.0.7アプリのHerokuでjammitを使用しています

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

コミット/デプロイする前にアセットをパッケージ化するために、これをrakeファイルに入れています

desc 'jammit'
  task :jam  => :environment do
  require 'jammit'
  Jammit.package!
end

そしてこれは.git/hooks / pre-commitにあるので、自動的に行われます

echo "jamming it"
rake jam
git add public/assets/*
git add public/javascripts/*

デフォルトでは、Herokuの有効期限はわずか12時間でした。これを増やすために(私は自信を持ってキャッシュバスティングスキームを使用しているため)、これをconfig / initializers/heroku.rbに配置します。

module Heroku
  class StaticAssetsMiddleware
    def cache_static_asset(reply)
      return reply unless can_cache?(reply)
      status, headers, response = reply        
      headers["Expires"] = CGI.rfc1123_date(11.months.from_now)
      build_new_reply(status, headers, response)
    end
  end
end

Heroku Railsサーバーの負荷を軽減するために、CloudFlareの無料アカウントも使用しています。このアカウントは、適切な分析機能とセキュリティ機能を備えた、軽量のリバースプロキシ/CDNを提供します。

一般的なコンテンツのキャッシュに取り掛かると、これは本当に悲鳴を上げるでしょう!

于 2011-12-08T16:58:06.200 に答える
3

私と同じように、jammit force を使用してアセットをパックし、すべてを s3 にアップロードして、Rails でアセット ホストを定義することができます。これには、公開ディレクトリを .slugignore に追加できるため、スラッグを小さくして応答性を高めるという利点があります。

または、読み取り専用のファイル システムのため、heroku バージョンを機能させる方法を検討する必要があります。

于 2010-12-10T20:28:50.300 に答える
2

git pre-commit フックを使用して、heroku (または任意のサーバー) にプッシュする前にアセットがパッケージ化されていることを確認することもできます。例については、 https://gist.github.com/862102を参照してください。そのファイルをプロジェクト ディレクトリの .git/hooks/pre-commit にコピーできます。

于 2011-07-01T19:22:25.363 に答える
1

これが解決策です

https://github.com/kylejginavan/heroku_jammit

于 2011-09-17T00:22:47.950 に答える
0

Herokuには読み取り専用のファイルシステムがあるため、Jammitは圧縮および縮小されたCSS/JSファイルを実際に保存することはできません。

これは、herokuでのアセットパッケージングの課題に関する非常に優れた記事です:http://jimmycuadra.com/posts/the-challenge-of-asset-packaging-on-heroku

于 2011-11-23T10:41:08.687 に答える