我在Heroku上有一个用于网站的ruby / rack应用程序。该站点使用Javascript,我想访问Javascript文件中的Heroku环境变量(API密钥)。我试过了:
process.env.API_KEY
// As well as:
process.env['API_KEY']
但似乎都不起作用。我得到一个没有定义错误的进程。我得到的上述代码行来自在Heroku上运行的Node.js应用程序。我认为从普通的js文件访问密钥的方法是相同的,但它不起作用。
答案 0 :(得分:3)
我写的简单应用程序有一个例子。 https://github.com/hickford/nanoblogger Javascript文件nano.js
由Ruby erb模板
var pusher = new Pusher( '<%= Pusher.key %>');
答案 1 :(得分:1)
process.env
内容is part of Node.js,而不是JavaScript的一部分,因此它不会转到您的应用。
您的机架应用程序应该可以访问环境变量,因此,如果您可以将该值传递给JavaScript可访问的内容(不将其暴露给用户/ DOM,如果它是敏感信息)那么这应该有效。
This other answer可能会为您指明一个有用的方向,或者至少澄清您是否可以通过JavaScript实现您的目标。