2016-10-07 5 views
1

時間の経過とともに、私はアプリケーション全体で再利用可能な補助的な子ルートを正常に作成しました。並べ替え角度2の補助ルータにブラウザの再ロード時にエラーが発生しました

補助経路は最初のページの読み込み時に完全に機能し、ブラウザの履歴に実際に影響します。しかし、URLをリロードしたり、初期ロード時に補助リファレンスを含めたりすると、main.jsのファイルが見つかりません。

私のアプリがhttp://*RootDirectory*/*CurrentURL*/*AppDirectory*/main.jsを取得しようとしていることをはっきりと知ることができるので、エラーの理由は明らかです。

main.jsをロードしようとすると、何らかの理由でアプリがCurrentURLRootDirectoryと考えられます。当初はリンクされたファイルのすべてをindex.htmlから読み込むことに失敗しましたが、自分のサイトルートを参照するようにパスを変更することで修正しました。

私は同じようにmain.jsでこの問題を解決することができますが、Angular2(すべての栄光のために)が一貫性のあるエラーメッセージを提供する際に直腸を吸うので、この誤った相対パスがどこにあるかわかりません!

  • のTSconfigで絶対パスに私のOUTDIRを変更する:ここで

    は、私はすでに試したものです。

  • 自分のメインアプリケーションパッケージを自分のsystemjs設定の絶対パスに変更します。

  • 私がすでに試したことを思い出してください。

  • 私のオフィスウィンドウから飛び出します。

kThxBye

答えて

1

あなたはすべてのあなたのルートに#を追加HashLocationStrategyを実装することによって、これを簡単に解決することができますので、http://RootDirectory/CurrentURLhttp://RootDirectory/#/CurrentURLになります。あなたはHashLocationStrategyAppModuleにプロバイダを追加することでこれを実現:

{ provide: LocationStrategy, useClass: HashLocationStrategy } 

あなたは@angular/commonからLocationStrategyHashLocationStrategyをインポートする必要があります。

import { LocationStrategy, HashLocationStrategy } from '@angular/common'; 

あなたはそれhereについての詳細を読むことができます。

+0

非常に迅速な対応に感謝します!それは完璧に働いた。しかし、今私はどのようにURLをきれいにするのですか? – Smaft

+0

@Smaft私はあなたがあなたのサーバーの設定を変更しなければならないことは分かっていますが、正確に何がわからないのでしょうか。 –

関連する問題