2016-09-02 7 views
0

私はasp.netアプリケーションを作成し、コースページのような異なるページへのビューを持っています。AngularJSのURLリライトがASP.NETで動作しない

IIS上で localhost:50717を実行しています。

ng-viewタグを含むroutes.htmlページがあります。最初に私がコースビューに行きたければ、私は:localhost:50717/routes.html#/ coursesとタイプします。 はlocalhost::私は置く私のhtmlページの先頭に

$locationProvider.html5Mode(true); 

:50717 /コース

は、だから私のJSファイルに私が入れしかし、私はちょうど行うことができるように書き換え、いくつかのURLをやってみたかったです中:

<rewrite> 
    <rules> 
    <rule name="RewriteRules" 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> 

    </rules> 
</rewrite> 
:私のweb.configファイルで

<base href="/" /> 

私はsystem.webServerのXMLタグにこのコードを入れ10

私が行く:ローカルホスト:50717/routes.htmlと私のリンクをクリックしてください: <のhref = "コース" >コース<を/それはローカルホストに私を得る>

:50717 /コースだけ罰金。これは、URL書き込みを可能にするためにそのコードを削除してもうまく動作します。

404エラーが発生しているページをリロードしようとするとき、またはroutes.htmlページではなくベースディレクトリに行くと思うlocalhost:50717に移動しようとするときだけです。

私もで私のIIS上でURL書き換えをインストール: http://www.iis.net/downloads/microsoft/url-rewrite

私は、「ダウンロードURL書き換えモジュール2.0」に行ってきましたし、x64のダウンロードリンクをクリック

、それが正しくダウンロードされ、URLの書き換えを見ることができましたIISの既定のサイト用です。ここで何ができますか?

答えて

0

"/routes.html"がウェブサイトのルートを表す場合は、アプリケーションに適切なリクエストが送信されるたびにそのファイルの内容が返されるようにする必要があります。

I.e. "/ Courses"を呼び出すと、そのURLに対応するコンテンツ/ルート/リソースがないため、404が表示されます。返すものは "/routes.html"の内容です。そして、AngularJSルーティングがクライアント側を引き継ぐようにします。

私は再読みをお勧めしますAngularJS HTML5-mode; "/#/ Courses"と "/ Courses"を使用することの違いは、最初のように見えるかもしれません、reg。あなたのルートを設定する方法。

+0

その情報をありがとう。それは本当に役に立ちました。ここに私の新しいWeb.Configファイルです:< "*" マッチURL = /> – user3739190

+0

<ルール名= "RewriteRules" stopProcessing = "真"> <条件するlogicalGrouping = "MatchAll"> <追加 user3739190

+0

今何が起こるかは、私がlocalhostのリロードできることです:50717 /コースだけ罰金を – user3739190

関連する問題