我正在使用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?我做错了什么?
答案 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