query: tag:heroku

新しい環境に移行すべく、ruby-1.9.3, rails-3.1.3 で作ったwebアプリをherokuにデプロイしてみたりしています。
いくつか注意点があったのでメモ。

application.css isn't precompiled

手元の環境で動いていても、いざデプロイすると以下のようなエラーが出ることがあります。

pre>>
ActionView::Template::Error (application.css isn't precompiled):
<<--

事前に bundle exec rake assets:precompile してから生成物をgitに含めてデプロイすればいいのですが、自動的に生成して欲しい場合には、
config/environments/production.rb

ruby>>
config.assets.compile = true
<<--

を指定します。これで勝手に生成してくれます。

Could not find a JavaScript runtime

これもassetsの生成に関する問題なのですが、jsファイルを生成するにあたって、jsのランタイム環境が必要になります。
これもherokuの環境でやるためには、Gemfile に以下を追加します。

ruby>>
group :production do
gem 'therubyracer-heroku'
end
<<--

これでok

posted by genki genki on Thu 1 Dec 2011 at 04:07 with 2 comments

Merbの開発がなかなか進展しないのでSinatraをちょっと触ってみたところ、
DataMapper、Herokuとの組み合わせが非常に簡単でいい感じでした。

blog.rb
ruby>>
require "rubygems"
require "sinatra"
require "dm-core"
require "haml"

DataMapper::setup(:default, ENV['DATABASE_URL'] || 'sqlite3:db.sqlite3')

class Post
include DataMapper::Resource
property :id, Serial
property :content, Text
auto_upgrade!
end

get "/" do
@posts = Post.all(:order => [:id.desc])
haml :index
end

post "/" do
Post.create(params)
redirect "/"
end

END
@@ index
%h1 Hello, Sinatra!
%ul

  • @posts.each do |post|
    %li= post.content
    %form{:method => :post}
    %textarea{:name => :content}
    %input{:type => :submit, :value => "Post"}
    <<--

config.ru
ruby>>
require "blog.rb"
run Sinatra::Application
<<--

ローカルで起動するには

pre>>
% ruby blog.rb
<<--

もしくは

pre>>
% rack
<<--

でok. rubyの場合はhttp://localhost:4567、Rackの場合は http://localhost:9292 にアクセス。

これをHerokuにデプロイすると、
http://sinatora-blog.heroku.com/
こんな感じで動きます。

posted by genki genki on Tue 14 Jul 2009 at 14:56 with 2 comments