2013-05-20 152 views
1

僅使用AngularJS可以檢測子域並相應地路由?AngularJS子域的路由

說子域spicy.example.com指向相同的文檔根目錄爲example.com

example.comindex.html那裏住<div ng-view></div>

在我的配置我定義部分路線:
$routeProvider.when('/food', {templateUrl: 'views/example.com/regular.html'});

但是,如果spicey.example.com希望覆蓋regular.html部分與它自己?
$routeProvider.when('/food', {templateUrl: 'views/spicy.example.com/hot.html'});

這可能沒有在Apache/Nginx等服務器上使用重寫規則?

注:
這是一個單頁應用
$locationProvider.html5Mode(true);

我使用CORS:
$http.defaults.useXDomain = true;

回答

0

不,這是因爲Same origin policy不可能的。

記住同源策略適用於包括資源 是(例如ngInclude不會爲所有的瀏覽器 跨域請求和文件的工作:在某些瀏覽器//訪問)。

http://docs.angularjs.org/api/ng.directive:ngInclude

+0

我不知道什麼SOP有什麼關係。如果我在'spicy.example.com'上,並且正在從'example.com/views/spicy.example.com /'請求一個資源,我並沒有發出一個交叉源請求來執行一個動作,我只是做了一個請求資源。 –

+0

你應該有相同的主機,相同的端口和相同的協議來提出請求。在這種情況下,您違反了主機規則。所以它是交叉原點請求。 –

+0

我想我們可能會談論不同的事情。以與你對js資產的思考相同的方式思考部分問題。當然,你可以從CDN中獲取jquery,就像你可以獲取一個部分一樣。 –

0

CORS似乎是要走的路。

您可以通過NGINX/Node.js和enbale CORS將請求傳遞到文件,也可以使用CDN爲啓用CORS的資產(如Amazon Cloud S3)提供服務。

如果sumdoamins都指向同一個文檔根目錄但訪問:

example.com/views/home.html 

將是沒有什麼不同比訪問:

test.example.com/views/home.html