【发布时间】:2012-07-28 04:27:37
【问题描述】:
我有一个场景,我希望我的 CoffeeScript 文件访问一个环境变量,如 API 键值。这在本地可以正常工作,但是当我将其推送到 heroku 时它不起作用。
该文件的名称类似于 myfile.js.coffee.erb
我正在设置这样的值
api_key = '<%= ENV['SERVICE_API_KEY'] %>'
我知道这些值是在 heroku 中设置的,并且我已经三次检查了拼写等。我知道它正在被处理,因为生成的 JavaScript 文件看起来像这样
var api_key;
api_key = "";
在预编译我的资产时我需要做些什么来告诉它访问环境变量吗?我承认我是 CoffeeScript 和 Rails 资产管道的新手。还有另一种更被接受的方式吗?出于显而易见的原因,我不想将其嵌入文件中。
【问题讨论】:
-
为什么不把它嵌入到文件中?
-
我正在使项目开源,所以我不希望我的 api 密钥在源代码中。
-
啊,明白了;我误解了您将其嵌入文件中的意思。
-
另外,我想在本地使用不同的 api 密钥,因此通过使用 ENV vars,我不必手动更改每个环境的文件。
-
是的,我绝对同意不对其进行硬编码;我很快就读到了,还以为你担心别人看到钥匙。
标签: ruby-on-rails heroku coffeescript