Ruby Run Ruby2.0 App On Heroku

hooopo · 2012年11月06日 · 最后由 hooopo 回复于 2013年08月24日 · 3208 次阅读

本地安装 Ruby2.0

rvm install ruby-2.0.0-preview1 --verify-downloads 1

修改 Gemfile

source 'http://rubygems.org' ruby "2.0.0"

gem 'rails', '~> 3.2' gem 'unicorn'

把 thin 换成 unicorn,thin 在 Ruby2.0 下有问题..

最后修改 Heroku 环境变量

heroku config:set GEM_PATH=vendor/bundle/ruby/2.0.0 heroku config:set PATH=bin:vendor/bundle/ruby/2.0.0/bin:/usr/local/bin:/usr/bin:/bin

在编译静态文件的时候遇到一个坑,预编译出来的 js 和 css 是空的。。最后经过对比测试,发现是 Ruby2.0 的 bug,解决办法是把静态文件在本地 (Ruby1.9) 编译好提交到 Heroku 上。但是要注意一点就是本地环境的时候一定要记得rake assets:clean清理静态文件

http://rubylution.herokuapp.com/topics/33

赞楼主的探索精神,link 貌似报错...

#1 楼 @yorzi 我这里访问没报错~好奇怪?_?

虎跑总是站在潮流的最前沿~ :)

我的一个博客在本地运行良好,部署到 heroku 后样式出错了,检查原因是用的 bootstrap 和我 另外一个文件(override 了一部分 bootstrap)的样式有冲突。请问各位大神怎么解决呢?

#4 楼 @bruceyue 那你本地怎么没有 override 呢 heroku 环境可以设置成本地一样,慢慢调吧

#5 楼 @hooopo 本地的 css 文件是单独的,部署到服务器时会自动合并为一个文件。

#8 楼 @bruceyue 部署时也可以不合并啊 不是用 Heroku 么?

是的,怎么样指定不让其合并呢?

文档里没找着丫,能帮帮我吗?谢谢。

#12 楼 @bruceyue rails guide 里的 asset pipline 部分提到了

也遇到过类似的问题,写了一个 rake task 来部署代码到 heroku

namespace :heroku do
  desc "compile assets and deploy to heroku"
  task :deploy do
    Rake::Task['assets:clean'].invoke
    Rake::Task['assets:precompile'].invoke
    message = "[Deploy] to heroku on: #{Time.now}"
    sh "git add #{Rails.root}"
    sh %Q[git commit -v -m "#{message}"]
    sh "git push -f heroku master"
    sh "git reset HEAD~1 --hard"
  end
end

我在本地也让其合并了,但是运行良好。为什么到了服务器就不行了呢?

#15 楼 @bruceyue development 环境的 asset 相关配置和 production 环境到配置不一样呀

是的,这个我知道,但是我本地和服务器的都是同一个文件了,为什么在 Heroku 就错乱了呢?

#17 楼 @bruceyue 本地可以不预编译,heroku 强制与编译了

ok 了,问题解决了,谢谢啊 Hooopo. 看来在在本地写代码,然后在部署上去很不可靠啊。昨天用的 sqlite 数据库,结果部署才到 Heroku 就出错了,后来换成了 pg. 在 force.com 做开发就不用考虑这些问题。

#19 楼 @bruceyue 怎么搞定的啊,俺也遇到了...,14 楼 方法不行啊

CSS 优先级的原因,仔细看看是不是哪个 CSS 文件与另外的文件冲突了?

匿名 #22 2013年08月24日

我遇到过一个问题,就是 head 标签里面什么都没有,居然是空的。这是怎么回事

需要 登录 后方可回复, 如果你还没有账号请 注册新账号