2013-01-16 100 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