我正在 Heroku (Cedar) 上部署我的 Rails 应用程序,有 3 个关于预编译我的 Assets 的选项可供我选择,我选择了 Heroku 在部署时预编译我的 Assets 的选项。

当我推送时,我收到一个错误,提示它无法访问我的数据库(在预编译期间)。 那么,如何让Rails 在预编译时不连接数据库呢? 我不知道为什么首先要设置它,因为我无法想象预编译需要访问数据库的场景。

我在某处看到了一个在预编译时禁用初始化应用程序的解决方案,这是通过将以下内容添加到 application.rb 来实现的(在 environment/production.rb 中设置它不起作用):

config.assets.initialize_on_precompile = false

我尝试添加这一行,它有效,但我不知道它是否是一个好的解决方案。这会不会使一些插件可能用于预编译期间未加载的 Assets ,从而影响最终结果?

最佳答案

如果您启用 Heroku Labs (http://devcenter.heroku.com/articles/labs-user-env-compile),您就可以在部署时访问您的 Db,效果很好。

你使用德威吗?这通常是偶然访问预编译 Assets 的数据库的罪魁祸首。

10-07 19:43
查看更多