2013-05-20 2 views
1

Использование только AngularJS позволяет определить поддомены и маршрут соответственно?маршруты для поддоменов с AngularJS

Say субдомен spicy.example.com указывает на то же DOCROOT, как example.com

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?

Примечание:
Это один одностраничный App
$locationProvider.html5Mode(true);

Я использую CORS:
$http.defaults.useXDomain = true;

ответ

0

Нет, это не представляется возможным из-за Same origin policy.

Имейте в виду, что Same Origin Policy относится к ресурсам, включенных (например ngInclude не будет работать для кросс-доменных запросов на всех браузерах и для файла: // доступ в некоторых браузерах).

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

+0

Я не уверен, что СОП должен делать с ним , Если я на 'spicy.example.com', и я запрашиваю ресурс из' example.com/views/spicy.example.com/'Я не делаю запрос на перекрестный поиск для выполнения действия, я просто делаю запрос ресурса. –

+0

, вы должны иметь тот же хост, тот же порт и тот же протокол для выполнения запроса. в этом случае вы нарушаете правило хоста. так что это запрос на перекрестный поиск. –

+0

Думаю, мы можем говорить о разных вещах. Подумайте о частицах так же, как вы думаете об активах js. Конечно, вы можете получить jquery из CDN так же, как вы можете получить частичный. –

0

CORS кажется, что путь.

Вы можете прокси передать запрос на файлы через NGINX/Node.js и enbale CORS, или вы можете использовать CDN для обслуживания активов с помощью CORS, таких как Amazon Cloud S3.

Если sumdoamins, однако, указывают на тот же корень док, доступ к:

example.com/views/home.html 

не будет отличаться от доступа:

test.example.com/views/home.html 
Смежные вопросы