これらの状況に対応しています404 Refreshscenarios 私たちはHTML5モードですから、URLを修正する必要があります。問題は、展開されたアプリケーションで動作するソリューションは、開発中にVisual Studioで動作しないということです。 web.configファイルに次のように置くことによって展開されたアプリケーションの動作のための角のついたリンクがサーバを壊す
当社のソリューション:
<rewrite>
<rules>
<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" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/myAppName/" />
</rule>
</rules>
</rewrite>
そしてindex.htmlのための以下の変更:
<base href="/myAppName/">
これは主に除いて素晴らしい作品Angularで作成したリンクの場合たとえば、
<a href="/partDetails/"></a>
配備されたアプリは、URLに「myAppName」を入れません。どうしてこれなの?
は、Visual Studioの開発環境では、<base href="/myAppName/">
がアプリケーションを壊すことがあります。これは、次のようになり、出力にエラーの無限の文字列を生成するにアプリをスロー:
SourceMap http://localhost:40288/app.module.js.map read failed: Unexpected character encountered while parsing value: <. Path '', line 4, position 1..SourceMap http://localhost:40288/app.core.module.js.map read failed: Unexpected character encountered while parsing value: <. Path '', line 4, position 1..SourceMap http://localhost:40288/app.config.js.map read failed: Unexpected character encountered while parsing value: <. Path '', line 4, position 1..
Exception was thrown at line 1247, column 4 in eval code
0x800a139e - JavaScript runtime error: SyntaxError
Exception was thrown at line 1265, column 4 in eval code
0x800a139e - JavaScript runtime error: SyntaxError
これは、メモリがなくなるまで無限ループのようです。しかし、私が<base href="/myAppName/">
からアプリ名を削除した場合、正常に動作しているように見えますが、サーバが壊れてしまいます。
ここで問題が発生しているアイデアはありますか?ソリューションは片面、開発、または展開されているだけなので、どうすれば解決できるのですか?
これを試しましたが、上記のすべての例外と同じ問題がローカルに発生します。 – jlembke
レンダリングされたベースURLが正しいことを確認しましたか?ここからは見えません。 –
あなたが提案したコードは正しい "http:// localhost:40288/myAppName /"をレンダリングします。しかし、 "/ myAppName /"もそうです。どちらもアプリケーションで上記の例外を生成し、ページはレンダリングされません。それらは例外なく無限に生成されます。ベースを "/"に変更すると、すべてがローカルで正常に動作しますが、サーバー上で動作します。 – jlembke