我有一個主要基於JavaScript的網站。它使用REST服務。我在JavaScript頁面中硬編碼了REST服務URL。該URL將從PROD更改爲測試。每次我將這個站點部署到不同的環境時,我需要去更新.JS文件。管理這些的最佳方法是什麼?有沒有更好的方法來做到這一點?控制JavaScript中的設置
1
A
回答
2
您可以通過location.href
獲取JS加載的當前頁面的URL。使用這個和一些字符串操作,你可以動態地創建這些RESTful URL。
1
我通常會將這些地址和其他部署敏感值分隔到由服務器在運行時生成的單獨的腳本塊中。
例子:(ASP.NET MVC在這裏,但可以是任何語言/框架)
<script type="text/javascript">
var pageOptions =
{
"detailsDataUrl": '@Url.Action("LoadDetail", "Contact")',
"applicationBase": '@Url.Content("~")'
};
</script>
你可以交替與眼前這個類型的數據,你的部署過程的一部分,是一個文件的多個版本部署環境的版本。
更新:K. Scott Allen對從服務器代碼傳遞數據到JavaScript代碼的不同選項做了一個很好的發帖,這只是一個例子。你可以閱讀它here。他特別提到了一個名爲NGON的圖書館,該圖書館正式確定了上述模式,並增加了一些便利的花裏胡哨的功能。我已將它添加到幾個項目中,並發現它非常有用。
1
每個人都有一點不同,但通常這是使用構建系統完成的。在構建期間,在構建的服務器上有一個環境變量,其值爲「prod」或「qa」或「dev」。當構建Web應用程序組件時,一個步驟就是使用適合環境的值替換放入文件中的令牌。
請注意,如果您爲寧靜的端點使用相對路徑,則不需要執行此操作。如果您需要更改主機/協議/端口信息,則只需要執行此操作。這很糟糕。可能更好地瞭解您正在測試哪個環境並使用/ etc/hosts將標準URL映射到特定環境的URL。例如,如果你的應用程序使用
www.myapp.com
你能設置,即其URL映射到qa.myapp.com:80
的環境。您可以使用腳本來管理更改主機文件以適應您想要的任何環境。
相關問題
- 1. CMD控制檯的設置
- 2. 在WebBrowser控件中設置JavaScript事件
- 3. 動態設置控制ID
- 4. 可可控制設置Shorcuts
- 5. 視圖控制器設置
- 6. 設置控制器測試
- 7. 設置標籤控制文本屬性在客戶端的JavaScript
- 8. 在控制模板中設置屬性
- 9. 在ui.bootstrap.modal中設置電流控制器
- 10. 在控制器中設置字段
- 11. 在控制器中設置app.config
- 12. 在asp.net中設置緩存控制
- 13. 無法在Android設備監視器中設置位置控制
- 14. 在Codeigniter中的控制器中動態設置配置值?
- 15. Javascript集中控制
- 16. 自動設置控制檯xy位置
- 17. 將控制位置設置爲原始
- 18. 控制的XAML內容設置到控制
- 19. 設置根視圖控制器的模態視圖控制器
- 20. 的iPad設置一個UIView控制器
- 21. 如何設置控制器的佈局
- 22. 流量控制的時間設置
- 23. 控制是白色的設置DefaultStyleKey
- 24. 設置控制器的「視圖名稱」
- 25. 從控制器設置表格的值
- 26. 由plist控制的應用內設置?
- 27. 設置的TabBar視圖 - 控制
- 28. 控制模板上的WPF設置
- 29. 設置控制常規的方法值
- 30. 加快我的控制檯設置