3

サイトを提供する Heroku に ruby​​/rack アプリがあります。このサイトは Javascript を使用しており、Javascript ファイル (API キー) 内の Heroku 環境変数にアクセスしたいと考えています。私はもう試した:

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

しかし、どちらも機能していないようです。プロセスが定義されていませんというエラーが表示されます。上記のコード行は、Heroku で実行されている Node.js アプリのものです。通常のjsファイルからキーにアクセスするのと同じ方法だと思っていましたが、うまくいきません。

4

2 に答える 2

3

あなたは混乱しています。その Javascript は、Heroku ではなく、訪問者の Web ブラウザーで実行されているため、サーバーの環境変数を読み取ることができません。これはよくある問題です。解決策は、Web アプリが Ruby テンプレートによって Javascript を提供し、パブリック API キーを挿入することです。

私が書いたシンプルなアプリには例があります。https://github.com/hickford/nanoblogger Javascript ファイルnano.jsは Ruby erb テンプレートによってレンダリングされます

var pusher = new Pusher( '<%= Pusher.key %>'); 
于 2012-09-21T19:59:36.917 に答える
1

これは Node.js の一部であり、JavaScript の一部ではないため、アプリには反映されませんprocess.env

ただし、ラックアプリは環境変数にアクセスできる必要があるため、その値を JavaScript がアクセスできるものに渡すことができれば (機密情報である場合はユーザー/DOM に公開せずに)、それは機能するはずです。

この他の回答は、有用な方向性を示しているか、少なくともあなたがやろうとしていることが JavaScript から可能かどうかを明確にするかもしれません。

于 2012-09-21T19:48:34.190 に答える