2016-04-28 41 views
3

我有一個Ajax調用我的後端的JavaScript前端。要做到這一點,它需要在Ajax get()調用中硬編碼的「backend_URL」,比如說「http://myservice/backend」。把前端javascript配置變量放在哪裏

現在,如果我想在不同的機器上部署我的應用程序,其中一些將使用此URL與HTTPS:「https://myservice/backend」,有些則不是(因爲它們缺少適當的證書並且不會公開有價值的數據)。

我應該在哪裏放置「USE_HTTPS = 1」配置變量,以便部署應用程序的人可以選擇使用SSL還是不使用SSL?當然,這個問題會擴展到其他配置變量。

我想過在項目根目錄下添加一個「.config」文件,但後來我不知道如何將它導入到我的代碼中。或者我應該導出環境變量?還是一個node.js功能?

+0

這是**客戶端**代碼,需要知道這一點,對吧? –

+0

創建一個文件config.js並編寫你的客戶端配置。在裏面。在讀取配置文件之前將其導入到標題中。信息。 –

+0

@ T.J.Crowder是的,客戶端。服務器端將Apache配置爲接收HTTP或HTTPS,但客戶端不知道它,因此需要提示。 – JulienD

回答

2

我最後寫一個conf.js文件與內容

window.CONFIG = { 
    SOME_CONSTANT = 22, 
} 

,並在我的的index.html<script>其他腳本之前已經包含了它。 window不是強制性的,但顯示它來自何處,當我把它稱爲window.CONFIG在JavaScript的其餘部分的任何地方。

1
CONFIG = (function(){ 
var conf_info = {}; 
conf_info["url"] = 'http://codepen.io/pen/'; 
return{  
    getValue : function(param){ 
    return conf_info[param]; 
    } 
} 
})(); 

//some where in different file 
document.getElementById("result").innerHTML = CONFIG.getValue('url'); 
+0

這有幫助,但它仍然遠遠不可讀的配置文件(如grunt/gulp配置或JSON例如,沒有代碼語義)。如果我要求人們編輯代碼,他們不會喜歡它。我應該從該代碼讀取json嗎? – JulienD