私はこれが私のテスト環境でどうして起こっているのか分かりませんでしたが、私はその問題を回避することができました。私がやった次
- 角度のアプリのための
有効HTML5モード:私は「真」としてrequireBaseいる
$locationProvider.html5Mode({
enabled: true,
requireBase: true
});
私は上記のように、Webアプリケーションは、に私をリードappNameのを、持っているので、ポイント2
、あなたの角度のアプリがあなたのベースのアプリ名で作業できることを確認し、あなたのメインのindex.htmlファイルにこれを追加するには:
<base href="/appName/">
<head>
タグの先頭にあることを確認してください
上記の問題は解決しましたが、新しいものが導入されました。 html5モードのため、あなたのURLに#が表示されなくなります。そして今、ページをリフレッシュすると、URLが角度で完全に管理されるため、サーバーはアクセスしようとしているリソースの処理方法を知らないかもしれません。サーバー側にも存在しない可能性があります。したがって、ページを更新してサーバーが知らないものにアクセスしようとすると(私の場合、appName/apiで始まるもの、appName/resourcなどは大丈夫です)index.html
にリダイレクトする必要があります。つまり、URLを書き換える必要があります。残念ながら、tomcat7はこれをサポートしていないので、tomcat8にアップグレードする必要がありました。 URLの書き換えは、Apacheフロントエンドサーバーでも構成できます。あなたは、それを行うことができる場合tomcat8にconf/server.xml
でURL書き換えを有効にします。
RewriteCond %{REQUEST_URI} ^/appName/(api|resource).*$
RewriteRule ^.*$ - [L]
RewriteRule ^.*$ /appName/index.html [L,QSA]
これはapi/*
またはresource/*
で始まるものであることを言う:
は <Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
続いていconf/rewrite.config
と呼ばれる新しいファイルを作成します他のものはindex.html
にリダイレクトする必要があります。