Как установить базовый URL AngularjJS динамически в зависимости от выбранной переменной среды?

У меня есть среда разработки и производства, в которой мой URLотличаются:

производство:

www.exmaple.com/page

развитие:

dev.environmenthttps://stackoverflow.com/project/page

Я знаю, что могу установить базовый URL в AngularJS с помощью

но это нене помогите мне здесь. Перед загрузкой приложения AngularJS я получаю файл конфигурации (в файле app.js с.run оператор, который читает переменную, которая имеет среду:

]).run([
  '$rootScope',
  '$http',
  function (
    $rootScope,
    $http
  ) {
    var configDeferred = $q.defer();

    // fetch config and set the API    
    $http.get('config.json').then(function(response) {
      $rootScope.config = response.data;
      configDeferred.resolve();
    });

    // Wait for the config to be loaded, then go to state
    $rootScope.$on('$stateChangeStart', function (event, next, current) {
      event.preventDefault();
      $q.all([configDeferred.promise]).then(function() {
        $state.transitionTo(next.name);
        return;
      });
    });

Есть ли способ динамически установить базовый URL, основанный на извлеченном файле конфигурации в AngularJS (может быть, с .htaccess)?

Попытка 1: Попробуй получить конфиг через.run и установите базовый URL через ng-href:

Отредактируйте следующую строку кода в моем app.js:

// fetch config and set the API    
$http.get('config.json').then(function(response) {
  $rootScope.config = response.data;
  $rootScope.baseUrl = response.data.baseUrl; // 'https://stackoverflow.com/project/'
  configDeferred.resolve();
});

и в моем index.html:


Похоже, это не работает: когда я изменяю атрибут href тега на ng-href, он корректно загружает контент, но изменяет мой URL-адрес наdev.environment/page вместоdev.environmenthttps://stackoverflow.com/project/page

ОБНОВИТЬ: Конфигурационный файл:

{
  "mode": "development",
  "baseUrl": "https://stackoverflow.com/project/"
}

Ответы на вопрос(4)

Ваш ответ на вопрос