1

我查看了有关此主题的许多帖子,但似乎找不到解决我问题的组合。对不起,如果这是一个重复。

问题是我不确定我为达到这一点所采取的步骤顺序。

我在 Heroku 上的开发和生产中都有一个运行良好的 Rails 应用程序。但是,在 Heroku 部署中,我在资产预编译期间遇到了错误。因此,我更改了设置,因此 Heroku 会假设 'rake asset:precompile' 在部署之前已在本地运行。摆脱了部署错误,没问题。我现在不得不在本地预编译并将文件包含在我的 Git 存储库中,这有点烦人,但我喜欢无错误部署。

无论如何,现在正在开发中,对 CSS 的更改并没有即时反映。我必须运行“rake assets:precompile”。那不好。发现删除公共/资产可以解决该问题的帖子,它确实做到了。

现在 Javascript/Coffeescript 更改不会即时反映。

对不起,冗长的描述。

理想情况下,我会进入一个在开发中即时反映变化的世界,我不需要在 Heroku 部署之前运行“rake assets:precompile”,并且在 Heroku 上预编译期间不会出现错误.

不太理想的是,我会回到我最初的行为(Heroku 在部署时抱怨,但一切仍然正常)。

4

1 回答 1

0

如果您想即时预编译资产,请使用(例如config/production.erb

config.assets.compile = true
config.assets.precompile << '*.js'

然后查看config/application.rb那里,您可以选择是否要在部署到生产之前进行预编译

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end
于 2013-01-01T16:29:33.993 回答