0

我正在使用 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 上运行良好,但由于咖啡脚本文件,它不能在 Heroku 上运行。如果这有任何帮助,我会在 Heroku Cedar 上。我查看了 Heroku webapp 中的源代码,看起来我的 cofeescript 并没有像 Heroku 那样被编译成缩小的 javascript。如何让咖啡脚本在 Heroku 上编译?我究竟做错了什么?

4

2 回答 2

1

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

一个好的起点是rake assets:precompile确保您可以在本地运行它。这是 Heroku 将要运行的命令——或者如果设置正确则应该运行。

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

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

于 2013-01-16T22:09:06.307 回答
0

在 Heroku 的 Cedar 上,不需要将 therubyracer-heroku 包含在 Gemfile 中。检查我的源代码中的 application.js,我发现咖啡脚本确实被编译成 javascript。问题是我的咖啡脚本依赖的其他一些文件存储在 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
于 2013-01-24T19:35:46.170 回答