仅使用AngularJS可以检测子域并相应地路由吗?
假设子域名 spicy.example.com 指向与 example.com
相同的docRoot example.com 有一个index.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 :(得分:0)
不,由于Same origin policy,这是不可能的。
请记住,同源政策适用于所包含的资源 (例如,ngInclude不适用于所有浏览器的跨域请求 对于某些浏览器上的file://访问权限。
答案 1 :(得分:0)
CORS似乎是要走的路。
您可以通过NGINX / Node.js代理将请求传递给文件并使用CORS,也可以使用CDN为启用CORS的资产提供服务,如Amazon Cloud S3。
如果sumdoamins指向同一个doc root,请访问:
example.com/views/home.html
与访问:
无异test.example.com/views/home.html