Javascript 具有AngularJS的子域路由

Javascript 具有AngularJS的子域路由,javascript,angularjs,Javascript,Angularjs,仅使用AngularJS是否可以检测子域并相应地进行路由 假设子域spick.example.com指向与example.com相同的docRoot example.com有一个index.html所在位置 在我的配置中,我为部分定义路由: $routeProvider.when('/food',{templateUrl:'views/example.com/regular.html'}) 但是如果spicey.example.com想用它自己的来覆盖regular.htmlpartial呢?

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

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

example.com有一个
index.html
所在位置

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

但是如果spicey.example.com想用它自己的来覆盖
regular.html
partial呢?
$routeProvider.when('/food',{templateUrl:'views/spice.example.com/hot.html'})

在像Apache/Nginx这样的服务器上不使用重写规则,这是可能的吗

注意:
这是一个单页应用程序
$locationProvider.html5Mode(true)

我正在使用CORS:

$http.defaults.useXDomain=true

不,这是不可能的,因为

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


CORS似乎是一条路要走

您可以通过NGINX/Node.js和enbale CORS代理将请求传递给文件,也可以使用CDN为启用CORS的资产提供服务,如Amazon Cloud S3

但是,如果sumdoamin指向同一文档根,则访问:

example.com/views/home.html
test.example.com/views/home.html
这与访问:

example.com/views/home.html
test.example.com/views/home.html

我不确定SOP和它有什么关系。如果我在
spice.example.com
上,并且我正在从
example.com/views/spice.example.com/
请求一个资源,那么我不是在跨源请求执行一个操作,我只是在请求一个资源。您应该有相同的主机、相同的端口和相同的协议来发出请求。在这种情况下,您违反了主机规则。所以这是跨产地的要求。我想我们可能在谈论不同的事情。用对待js资产的同样方式来看待分部。当然你可以从CDN获取jquery,就像获取部分一样。我忘了提到这是一个使用pushState的单页应用程序。你可以使用html中的标记从CDN加载js文件。但是angular让ajax呼吁加载部分。它们不是相同的东西。