0

私はangel.jsとIISに展開されたサーバー側コンポーネントを使ってWebアプリケーションを開発中です。
ブラウザでリロードボタンを押すと、サーバーがURL(角で管理)を認識しないため、404メッセージが表示されることがあります。各モジュールには、私は例えば、対応するページのルーティングを管理し、その後Angular.jsとIISのリロードページ

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> 

どのような考えですか?ありがとう。

アップデート1:
私は、ページを再読み込み時には、上記のルールを使用すると、次のエラーが表示されていることを言及するのを忘れてしまいました。

HTTPエラー403.14 - 禁止: Webサーバーは、このディレクトリの内容を一覧表示しないように構成されています。

+0

web.configで書き直しても問題ありません。ルートURLにリダイレクトする必要があります。 内部にありますシステム内のタグ。ウェブサーバー? 404が本当に/ loginであることを確認しましたか? – Noppey

+0

@Noppeyはい、の下にあります。 – OtoLeo

答えて

0

/srcにリダイレクトする必要があります。これは、index.htmlページが存在する場所にリダイレクトする必要があります。ルートディレクトリにはインデックス/ルートページがないため、エラーが発生します。

+0

これを行うと、リロードボタンは機能しますが、ページには2つのヘッダーが読み込まれ、内容が繰り返されます。また、コンソールには次のように表示されます: "angular.js:13920 Error:[$ rootScope:infdig] 10 $ digest()反復中止! 最後の5回の反復でウォッチャーが起動しました:" – OtoLeo

+0

あなたのコードのどこかにリロードするコードは何ですか?これはiframeにありますか? – Noppey