2017-07-06 5 views
-1

簡単に言えば、古いリンクを新しいルートにリダイレクトしたいと考えています。私はapp-routes.tsでこれを行う方法を知っていますが、それは正確にはではありません。例:.NETからangular2への移行:古い(絶対)リンクをリダイレクトする方法は?

export const ROUTES: Routes = [ { path: 'my-loads', component: MyLoadsComponent, canActivate: [AuthGuard] }, { path: 'Applications/LoadBoard/CarrierBoard.aspx', redirectTo: 'my-loads' } ]

このリダイレクトが実際に動作しますが、ユーザーが(ハッシュ付き)/#/Applications/MyApp/Controller.aspxを訪問しようとしますが、ユーザーがURLのユーザーである、ハッシュなし(/Applications/MyApp/Controller.aspxを訪問しようとすると動作しません場合にのみ、ブックマークされます)。

これはwebpack/angular2がという相対的なのURLを使用してサイトを使用するために必要なすべてのスクリプトを読み込んでいるようです。 /script.bundle.jsの代わりにscript.bundle.jsをロードしようとしていますので、/Applications/MyApp/script.bundle.jsをロードしようとしています。この場合、root以外の絶対URLにアクセスしようとすると、必要なスクリプトの404文字しか取得できないので、スクリプトは実行されず、 "Loading ..."と表示されます。

このようなコンパイルのアイデアは、ユーザーがルートフォルダに常駐していないWebアプリケーションを作成できるようにすることです。これは良い考えですが、古いURLのリダイレクトを妨げています。 angular2内でこれらのリダイレクトを実装する方法はありますか?

答えて

0

タグに<base href="/">を追加すると、間違ったパスからスクリプトをロードしようとする角度に関する問題が修正されます。

正しくリダイレ​​クトルートを取得するために、我々は

(RouterModule.forRoot(ROUTES, { useHash: false }) 
+0

にRouterModuleラインを変更し、私たちのapp.module.tsで私たちのルートからハッシュを削除する必要が私はまだベースHREFは環境に依存すること持ってする方法を研究し、代わりにしていますハードコードされています。幸いなことに、ベースhrefは各開発者の環境にあるべきであり、ステージングとプロダクトであるべきですが、私はまだこれを環境変数にしたいと思います。 –

関連する問題