在云服务器上部署时,带有localhost地址的$ http.get请求

时间:2017-06-11 18:50:50

标签: angularjs node.js express

我有一个AngularJS工厂函数,如:



service.getUserRates = function() {
  return $http.get('https://localhost:8443/portfolio/get-user-rates');
}




这在localhost上工作正常,但在部署到数字海洋服务器之前,我必须更新URL以包含服务器的IP地址 - $http.get('http://67.205.xx.xxx:8443,而不是localhost或我得到{{} 1}}错误。

这很难管理,因为我在本地计算机上开发并将更改拉到云服务器中,每次我执行新的git推/拉时我都要不断更改URL。

管理此操作的最简单/最佳方式是什么,因此我不必反复手动更改网址?

2 个答案:

答案 0 :(得分:0)

我之前见过的一个简单的解决方案是替换所有出现的

webView.setWebViewClient(new MyWebViewClient()); String currentUrl; private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { currentUrl=url; return true; } }

https://localhost:8443

您始终可以使用$window.location.protocol + '//' + $window.location.host在整个应用程序周围共享主机名。

这具有支持子域名的额外好处。您无需更改任何内容即可将代码部署到angular.module('yourAppName').constanttest.yourdomain.com

答案 1 :(得分:0)

只需使用根相对网址:

 app.service("dataService", function() {
     this.getUserRates = function() {
         return $http.get('/portfolio/get-user-rates');
     }         
 });
  

通常,最佳做法是使用相对URL,以便您的网站不会绑定到当前部署的基本URL。例如,它可以在localhost上以及在您的公共域上工作,而无需修改。

     

— StackOverFlow: Absolute vs relative URLs