2013-01-16 97 views
0

我用Rails 3.2,並有此作爲的Gemfile:如何獲得coffeescript在Heroku上編譯?

gem 'rails', '3.2.11' 

group :development do 
    gem 'sqlite3', '1.3.5' 
    gem 'rspec-rails', '2.11.0' 
end 

group :assets do 
    gem 'sass-rails', '3.2.5' 
    gem 'coffee-rails', '3.2.2' 
    gem 'uglifier', '1.2.3' 
end 

gem 'jquery-rails', '2.0.2' 
gem 'coffee-script' 

group :test do 
    gem 'capybara', '1.1.2' 
end 

group :production do 
    gem 'pg', '0.12.2' 
    gem 'therubyracer-heroku', '~> 0.8.1.pre3' 
end 

我的web應用程序運行在本地主機正常,但它不工作在Heroku因爲CoffeeScript的文件。如果有任何幫助,我在Heroku Cedar上。我查看了Heroku webapp中的源代碼,看起來好像我的cofeescript被編譯到Heroku所做的縮小的JavaScript中。我如何獲得該咖啡標記在Heroku上編譯?我究竟做錯了什麼?

回答

1

我們需要了解更多關於您的應用程序來檢查每一種可能性。

一個好地方開始將rake assets:precompile,並確保您可以在本地運行。這是Heroku要運行的命令 - 或者如果事情設置正確的話。

爲了獲得更遠,我建議你在Heroku資產管道閱讀並確保您「穿越你的T公司和點綴你我的」

如果您仍然遇到問題,可以使用更具體的信息編輯此問題。

0

在Heroku的Cedar上,沒有必要將therubyracer-heroku包含在Gemfile中。在我的源代碼中檢查application.js,發現coffeescript確實被編譯爲javascript。問題是我有一些其他文件,我的coffeescript依賴於存儲在app/assets/libs中。我認爲Heroku並不是那麼深,所以我相信javascript並沒有全部加載。我不需要運行rake assets:precompile。這裏是工作的Gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.11' 

group :development do 
    gem 'sqlite3', '1.3.5' 
    gem 'rspec-rails', '2.11.0' 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '3.2.5' 
    gem 'coffee-rails', '3.2.2' 
    gem 'uglifier', '1.2.3' 
end 

gem 'jquery-rails', '2.0.2' 

group :test do 
    gem 'capybara', '1.1.2' 
end 

group :production do 
    gem 'pg', '0.12.2' 
end