将 Rails_Env 设置为生产的预编译资产

Precompiling assets with Rails_Env set as production

我正在尝试 运行 $ rake assets:precompile RAILS_ENV=production 以便:1) 缩小我的资产(遵循此答案:How do I minify CSS in Rails 4?)和 2) 在我的JS(即,我的 JS 有 ENV['variable'] 并且当我 运行 一个常规 rake assets:precompile 然后推送到 Heroku 时,代码 运行s 与 [=14= 的开发版本] 而不是生产的。

但是,我 运行 遇到了一个错误的问题:

rake aborted!
Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

错误是响应我正在编译的 JS 文件中的这一行:

var items_to_be_added = [{
  id: '<%= ItemName.where(name:"Jacket").first.id %>',
  name: "Jacket",
  number: 1
}

但奇怪的是我已经安装了 运行 heroku run gem listpg 0.15.1

非常感谢任何帮助!

您将必须在 database.yml 中指定 Heroku 的 postgres 数据库。

首先,在命令行上:heroku config

应该吐出来DATABASE_URL: postgres://<username>:<password>@<host>/<database>

将这些值放入您的 database.yml 文件中,以便您的本地环境知道如何连接到 Heroku 的数据库。

然后,资产预编译应该可以查询生产数据库并编译资产。

显然,不要将其签入版本控制。