如何在Heroku上编译coffeescript?

时间:2013-01-16 20:33:47

标签: javascript heroku compilation coffeescript

我正在使用Rails 3.2并将其作为Gemfile:

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

我的webapp在localhost上正常运行,但由于coffeescript文件,它无法在Heroku上运行。如果这对任何方面都有帮助,那我就是Heroku Cedar。我查看了Heroku webapp中的源代码,看起来我的cofeescript看起来并没有被编译成Heroku所做的缩小的javascript。如何在Heroku上编译coffeescript?我做错了什么?

2 个答案:

答案 0 :(得分:1)

我们需要更多地了解您的应用程序,以检查每种可能性。

开始的好地方是rake assets:precompile并确保您可以在本地运行。这是Heroku将要运行的命令 - 或者如果事情设置得当,应该这样。

为了更进一步,我建议你阅读Heroku上的资产管道并确保你“穿越你的t并点缀你的”

如果您仍然遇到问题,可以使用更具体的信息编辑此问题。

答案 1 :(得分:0)

在Heroku的Cedar上,没有必要将therubyracer-heroku包含在Gemfile中。检查我的源代码中的application.js,我发现coffeescript确实编译成了javascript。问题是我有一些其他文件,我的coffeescript依赖存储在app / assets / libs中。我不认为Heroku那么深,所以我相信javascripts并没有全部加载。我也不需要运行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