私は特にシングルページアプリとanglejsに関連する簡単な問題を解決しようとしています。確かにこれを行う簡単な方法でなければならないと思います。非ベースURLからangularjsアプリを起動
まずは、単一のページ以外のアプリの仕組みを考えます。たとえば、root内にindex.htmlファイルがあり、その中にother.htmlを持つotherというサブフォルダがあるとします。ブラウザでmysite.com/を起動すると、デフォルトでindex.htmlが提供され、すべて正常に動作します。 mysite.com/other/other.htmlを起動すると、other.htmlが実際のファイルであり、サポートされているリソースファイルなどがすべて含まれているため、正常に動作します。
ここでは、 ui-router。私は経路を作成する:state = other、url =/other、テンプレート= other/other.html、コントローラー付き
mysite.comを起動した場合。これは、角度index.htmlファイルを読み込むと、私は期待どおりホームページを取得します。私はその後、ブラウザに移動してmysite.com/#/otherと入力すると、正常にother.htmlページが正常にロードされます
私はmysite.com/otherに直接アプリを起動したいときに問題が発生します。最初に私が遭遇する問題は404です。なぜなら、他のディレクトリがあってもそこにはindex.htmlがなく、other.htmlファイルはテンプレートだけなので、アプリケーションを実行するのに必要なリソースがロードされないからです。
どうやらサーバーは角型アプリケーションの場合、最後にリソースファイル名のないURLがあれば、index.htmlを読み込み、角度ルータに実際のページを提供させる必要があることを知る必要があります。
私はサーバーでこれを試してみました。あなたがurl mysite.com/otherをリクエストしたときにindex.htmlを返しました。これは角型アプリの読み込みには成功しますが、驚いたことに、mysite.com/otherにはURLにmysite.com/other#/が表示されます。言い換えれば、ベースURLの一部として他のものを扱うようになりました。他のページを表示するには/ other(つまりmysite.com/other#/other)と入力する必要があります。
ベースタグとhtml5modeを使用してさまざまな実験を試みましたが、まだ適切な解決策を見つけることができません。
ここでは何を達成しようとしていますか? mysite.com/otherをmysite.com/#/otherにリダイレクトするにはどうすればよいですか? – yesIcan
ある意味ではい。私はユーザーがリンクmysite.com/otherを保存して、ほとんどのウェブサイトでできるようにそのページにアプリを起動できるようにしたい。 – smjhunt
これを試すhttps://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module – yesIcan