簡體   English   中英

在Heroku上使用Javascript訪問環境變量?

[英]Accessing environment variables in Javascript on Heroku?

我在Heroku上有一個ruby / rack應用程序服務於一個站點。 該站點使用Javascript,我想訪問Javascript文件中的Heroku環境變量(API密鑰)。 我試過了:

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

但似乎都不起作用。 我得到一個沒有定義錯誤的進程。 我得到的上述代碼行來自在Heroku上運行的Node.js應用程序。 我認為從普通的js文件訪問密鑰是一樣的,但它不起作用。

你很困惑。 Javascript在訪問者的Web瀏覽器中運行, 而不是在Heroku上運行,因此無法讀取服務器的環境變量。 這是一個常見問題。 解決方案是讓您的Web應用程序通過Ruby模板提供Javascript,插入公共API密鑰。

我寫的簡單app有一個例子。 https://github.com/hickford/nanoblogger Javascript文件nano.js由Ruby erb模板呈現

var pusher = new Pusher( '<%= Pusher.key %>'); 

process.env東西是Node.js的一部分 ,而不是JavaScript的一部分,所以它不會轉到你的應用程序。

但是,您的機架應用程序應該可以訪問環境變量,因此,如果您可以將該值傳遞給JavaScript可訪問的內容(不將其暴露給用戶/ DOM,如果它是敏感信息)那么這應該可行。

這個其他答案可能會指出您有用的方向,或至少澄清您嘗試從JavaScript中做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM