2017-04-11 7 views
1

私のAngular2アプリは、IIS上のWebサイトのサブディレクトリに配備されています。私はそれを構築するために次のコマンドを使用します。サブディレクトリにあるアプリケーションにルーティングするとき、URLがAngular2で増加する

import { Routes } from '@angular/router'; 
import { DnaPlotComponent } from './dna-plot/dna-plot.component'; 

export const routes: Routes = [{ path: '', component: DnaPlotComponent }]; 
:(アプリケーションのルートとしてのサブディレクトリを設定--bh):

app.routes.tsを次のように

ng build --bh testdna --no-aot --dev 

Iは次にアプリで使用してルーティング

app.module.ts:

import { RouterModule } from '@angular/router'; 
import { routes } from './app.routes'; 
... 
RouterModule.forRoot(routes) 

ページはURLを持っているに更新されるたびにそのサブディレクトリに追加されます。これは、URLが無限に増加し、リフレッシュに失敗し、404になることを意味します。次に、私が見ているものの例を示します。

https://develop.domain.com/dnaplot/dnaplot#/dnaplot/ 

と呼ばれるオリジナルのURLは次のとおりです。この出来事を停止する

https://develop.domain.com/dnaplot 

任意のアイデアをいただければ幸いです。

答えて

2

<base href="...">を設定するか、APP_BASE_HREFにデプロイメントパスを指定する必要があります。 <base href="...">はSVGの参照のような他のものに影響を与えながら、それだけで、ルータに影響を与えるので、詳細はAngular 2 router no base href set

APP_BASE_HREFの提供を参照してください

は、通常、より良いアプローチです。空のパス''と子ルートと

経路はpathMatch: 'full'

export const routes: Routes = [{ path: '', component: DnaPlotComponent , pathMatch: 'full'}]; 
0

を有していなければならない最終的に溶液は、空の文字列、すなわちにベースHREFを設定するだけでした。 <base href="">

ルーターは、元のビルドコマンドで--bh testdnaを認識しているようです。したがって、hrefタグのサブディレクトリを再設定する必要はありません。

関連する問題