HTML5プッシュステートクラッシュW /アンギュラUIルータURLルーティング
-
21-12-2019 - |
質問
私は、UI-Routerを採用しているAngular.js WebAppを使用しています( https:// github。 com / angular-ui / ui-router
.state(
'app.experience', {
url: 'e/:experienceId',
views: {
'center-pane@': {
templateUrl: 'partials/experience.html',
controller: 'ExperienceController'
}
})
.
I HTML5 PushState経由で
$locationProvider.html5Mode(true);
.
のとき
http://www.mysite.com/e/123
.
が要求され、私のバックエンドはルートディレクトリでindex.htmlを返送します。 ( angular.js を使用すると、ブラウザの場合index.htmlを受け取り、すべてのCSS / JSリソースの取得を開始します。要求は
用です。/e/js/script1.js
.
とは対照的に
/js/script1.js
.
ルートレベルでのみ存在します。デフォルトのルートディレクトリは、(要求されたURLから)(要求されたURLから)、実際のルート、mysite.com/e/
ではなく、既定です。
ここに見逃しているものはありますか? index.htmlの私のJavaScriptとCSSに相対SRCを使用することはできませんか?
助けてくれてありがとう!
解決
注:HTMLの外観に基づいて、あなたの問題に基づいてあなたの問題に基づいて私たちが紹介していません。
相対URLを使用できますが、ドキュメントのルートに基づいて相対にする必要があります。
それでは、HTML
でこのようなものがあるかもしれません<img src="images/foo.jpg" />
.
本当にこのようにするべきです(始めの追加 '/'スラッシュ)
<img src="/images/foo.jpg" />
.
これはAngularjsに固有のものではありません、それはHTMLのことです、詳細については。 P>
URLにブラウザが/e/
を使用している理由は、ブラウザが実際にURLに/e/
を持つリソースを要求したためです。ブラウザは、/e/
ディレクトリにないファイルでサーバーが応答していることを知りません。
したがって、先頭にスラッシュを転送することなく相対URLを持つ場合は、パスまたは元の要求されたリソースに対する相対的になります。あなたが望むことは、最初にスラッシュで相対URLを使用することです。