1

仅使用 AngularJS 是否可以检测子域并相应地路由?

假设子域辣.example.com 指向与example.com相同的docRoot

example.com 有一个index.htmlwhere 住的地方<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;

4

2 回答 2

0

CORS seems like the way to go.

You can either proxy pass the request to the files through NGINX / Node.js and enbale CORS, or you can use a CDN to serve the assets with CORS enabled like Amazon Cloud S3.

If the sumdoamins are pointing to the same doc root however, accessing:

example.com/views/home.html

Would be no different than accessing:

test.example.com/views/home.html
于 2013-05-24T13:54:11.720 回答
0

不,这是不可能的,因为同源政策

请记住,同源策略适用于包含的资源(例如,ngInclude 不适用于所有浏览器上的跨域请求以及某些浏览器上的 file:// 访问)。

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

于 2013-05-20T22:57:36.880 回答