0

Я работаю над веб-приложением, используя angular.js и компонент на стороне сервера, развернутый на IIS express.
Моя проблема заключается в том, что нажатие кнопки перезагрузки в браузере отображает сообщение 404, потому что, очевидно, сервер не распознает URL (управляемый угловым).Angular.js и IIS reload страница

На моем приложении модуля у меня есть следующие:

angular.module('app').config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 
    $locationProvider.html5Mode($locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    })); 
    $routeProvider.otherwise({ redirectTo: '/login' }); 
}]); 

Затем в каждом модуле я управлять маршрутизацией для соответствующих страниц, например:

angular.module('login', []) 

.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider.when('/login', { 
     templateUrl: 'src/app/login/login.tpl.html', 
     controller: 'LoginCtrl', 
     resolve: { 
     } 
    }); 
}]) 

Моя главная страница/SRC/index.html

Я также попытался добавить следующее правило в файл web.config, но он также не работает:

<rule name="AngularJS Routes" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="/" /> 
     </rule> 

Любые мысли? Благодарю.

Update 1:
Я забыл упомянуть, что, используя правило выше, показывает следующее сообщение об ошибке при перезагрузке страницы.

Ошибка HTTP 403.14 - Запрещено Веб-сервер настроен так, чтобы не отображать содержимое этого каталога.

+0

Ваша переписывание в web.config в порядке, она должна перенаправляться на ваш корневой URL. Внутренняя часть теги внутри system.webServer? И вы подтвердили, что 404 действительно включено/находится в режиме входа – Noppey

+0

@Noppey да, это под <конфигурацией>. – OtoLeo

ответ

0

Вам необходимо перенаправить на/src, так как там проживает ваша страница index.html. Вы получаете сообщение об ошибке, потому что не можете найти индекс/корневую страницу в корневом каталоге, потому что ее нет.

+0

Если я это сделаю, кнопка перезагрузки работает, но страницы загружаются двумя заголовками, и содержимое повторяется. Дополнительно, консоль показывает: «angular.js: 13920 Ошибка: [$ rootScope: infdig] 10 $ digest() итераций достигнуто. Aborting! Наблюдатели, уволенные в последние 5 итераций:« – OtoLeo

+0

Я бы сказал, что это где-то еще в вашем коде Какой код перезагружается? Это в iframe? – Noppey