¿Cómo configurar la URL base de AngularjJS de forma dinámica según la variable de entorno recuperada?

Tengo un entorno de desarrollo y producción en el que mis URL difieren:

producción:

www.exmaple.com/page

desarrollo:

dev.environment/project/page

Sé que puedo establecer la URL base en AngularJS con el

<base href='/project/' />

Pero eso no me ayuda aquí. Antes de cargar mi aplicación AngularJS, busco un archivo de configuración (en app.js, con el.run sentencia, que lee una variable que tiene el entorno:

]).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;
      });
    });

¿Hay una manera de establecer dinámicamente la URL base, basada en un archivo de configuración recuperado en AngularJS (quizás con un .htaccess)?

Intento 1: Trate de obtener la configuración a través de.run y establecer la url base a través de ng-href:

Edite la siguiente línea de código en mi app.js:

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

y en mi index.html:

<base ng-href="{{baseUrl}}" />

Parece que esto no funciona: cuando cambio el atributo href de la etiqueta a ng-href, carga el contenido correctamente, pero mi URL cambia adev.environment/page en lugar dedev.environment/project/page

ACTUALIZAR: El archivo de configuración:

{
  "mode": "development",
  "baseUrl": "/project/"
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta