ruby-on-rails - Rails + Heroku + Jammit

标签 ruby-on-rails ruby-on-rails-3 heroku jammit

我正在努力在我的Rails 3应用程序上安装Jammit,然后再部署到Heroku。

我安装了Jammit Gem,并配置好assets.yml,它可以在dev上运行。但是,当我推送到heroku时,文件正在404处理。

Jammit的用法说明说:“您可以在Rakefile和其他脚本中轻松使用Jammit:

require 'jammit'
Jammit.package!

我没有关注这在哪里/如何工作。像在Mac上一样,在我的站点命令中运行Jammit会产生未找到的命令。

有Jammit用户能够帮助我了解如何使用Jammit投入生产吗?

谢谢

最佳答案

我在Heroku的Rails 3.0.7应用程序上使用jammit

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

我在rake文件中有此文件,以便在我提交/部署之前打包 Assets
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,并具有一些不错的分析和安全功能。

当我开始缓存通用内容时,这东西真的会大叫!

关于ruby-on-rails - Rails + Heroku + Jammit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4404545/

相关文章:

ruby-on-rails - 为什么 declarative_authorization 会破坏我的 Controller 的功能? - rails 3

mysql - rails : Using named_scope which triggers a MySQL "in"

ruby-on-rails - Elastic Search 与 Sunspot 的功能比较

ruby-on-rails - 检查来自另一个对象的 ruby​​ 枚举

ruby-on-rails - 如何继续将 Rails 2 项目升级到 Rails 3+?

heroku - 如何确定 Play 应用程序是否正在heroku上的worker dyno上运行?

javascript - rails : redirect with call to Ajax

sql-server - FreeTDS 在 Mac 上连接到 SQL Server 时出现问题(来自服务器的意外 EOF)

heroku:正在运行连接到终端的控制台...

ruby-on-rails - Ruby on Rails Web 服务器