在Heroku上访问Javascript中的环境变量?

在Heroku上访问Javascript中的环境变量?,javascript,ruby,heroku,environment-variables,rack,Javascript,Ruby,Heroku,Environment Variables,Rack,我在Heroku上有一个ruby/rack应用程序服务于一个站点。该站点使用Javascript,我想访问Javascript文件中的Heroku环境变量(API密钥)。我试过: process.env.API_KEY // As well as: process.env['API_KEY'] 但两者似乎都不起作用。我得到一个进程没有定义错误。我从Heroku上运行的Node.js应用程序中获得了上述代码行。我认为从一个普通的js文件访问密钥的方法是一样的,但它不起作用。进程.env之类的东西

我在Heroku上有一个ruby/rack应用程序服务于一个站点。该站点使用Javascript,我想访问Javascript文件中的Heroku环境变量(API密钥)。我试过:

process.env.API_KEY
// As well as:
process.env['API_KEY']

但两者似乎都不起作用。我得到一个进程没有定义错误。我从Heroku上运行的Node.js应用程序中获得了上述代码行。我认为从一个普通的js文件访问密钥的方法是一样的,但它不起作用。

进程.env之类的东西,而不是JavaScript的一部分,所以它不会出现在你的应用程序中

但是,您的rack应用程序应该可以访问环境变量,因此,如果您可以将该值传递给JavaScript可以访问的内容(如果是敏感信息,则无需向用户/DOM公开),那么这应该是可行的


可能会为您指出一个有用的方向,或者至少澄清您试图从JavaScript执行的操作是否可行。

您感到困惑。Javascript在访问者的web浏览器中运行,而不是在Heroku上,因此无法读取服务器的环境变量。这是一个常见的问题。解决方案是让web应用程序通过Ruby模板提供Javascript,插入公共API密钥

我编写的简单应用程序有一个例子。Javascript文件
nano.js
由Ruby erb模板呈现

var pusher = new Pusher( '<%= Pusher.key %>'); 
var推进器=新推进器(“”);