如何處理AngularJS中的虛擬路徑?AngularJS和虛擬路徑
例如在我的測試環境中,我的基礎URL是http://localhost/AppName/
,在生產中,根目錄變爲http://www.mysite.com/
。
因此,在開發中,$http.get
去說http://localhost/AppName/Controller/Action
,但在prod該路徑不存在,它需要是http://www.mysite.com/Controller/Action
。
你怎麼處理$http
調用,還有,當用$httpBackend
嘲笑後端時的單元測試?
我在_Layout.cshtml
(使用ASP.NET MVC)試過,但並不在單元測試工作:
<script>
(function() {
'use strict';
var app = angular.module('cs').value('urlHelper', {
getUrl: function (url) {
var basePath = '@VirtualPathUtility.ToAbsolute("~/")';
return basePath + url;
}
});
}());
</script>
而且曾嘗試:
(function() {
'use strict';
var app = angular.module('cs', []);
app.run(['$rootScope', function ($rootScope) {
$rootScope.basePath = '/';
}]);
}());
任何想法不不得不擔心在部署到產品之前切換根路徑?
不要域名打擾,以'/'開始。它會自動指向正確的根。 – Mik378
@ Mik378 - 你是說我只需要在$ http中這樣寫請求:'$ http.get('/ Controller/Action')',這兩種情況都可以工作嗎? – Sam
是的,確切地說。我在我的應用程序中工作。 – Mik378