[解決済み] どのようにangularJSでrouteProviderとlocationProviderを設定するのですか?
2022-02-07 14:12:36
質問
angularJSでhtml5Modeを有効にしたいのですが、なぜかうまくいきません。私のコードに何か問題があるのでしょうか?
angular
.module('myApp',[])
.config(function($locationProvider, $routeProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/', {
templateUrl: 'partials/home.html',
controller: HomeCtrl
});
$routeProvider.when('/tags/:tagId', {
templateUrl: 'partials/result.html',
controller: TagResultCtrl
});
//$routeProvider.otherwise({redirectTo: '/home', controller: HomeCtrl});
});
htmlで
<a href="tags/{{tag.id}}"><img data-ng-src="{{tag.imageUrl}}"></a>
解決方法は?
唯一の問題は、相対リンクとテンプレートがこのために正しく読み込まれないことです。
<ブロッククオート相対リンク
すべての相対リンク、画像、スクリプトなどを必ず確認してください。メインの html ファイルの head で url のベースを指定する必要があります (
<base href="/my-base">
で始まる)、または絶対URLを使用する必要があります。
/
なぜなら、相対URLは、ドキュメントの最初の絶対URLを用いて絶対URLに解決されるからです(この絶対URLは、しばしばアプリケーションのルートとは異なります)。
あなたの場合、フォワードスラッシュを追加することができます。
/
で
href
属性 (
$location.path
はこれを行います
自動的に
) に、また
templateUrl
を使用する場合、ルートを設定する必要があります。これにより、以下のようなルートを避けることができます。
example.com/tags/another
で、テンプレートが正しく読み込まれるようにします。
以下は、動作する例です。
<div>
<a href="/">Home</a> |
<a href="/another">another</a> |
<a href="/tags/1">tags/1</a>
</div>
<div ng-view></div>
そして
app.config(function($locationProvider, $routeProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl: '/partials/template1.html',
controller: 'ctrl1'
})
.when('/tags/:tagId', {
templateUrl: '/partials/template2.html',
controller: 'ctrl2'
})
.when('/another', {
templateUrl: '/partials/template1.html',
controller: 'ctrl1'
})
.otherwise({ redirectTo: '/' });
});
Chromeを使用する場合は、サーバーから実行する必要があります。
関連
-
[解決済み】npm UNMET PEER DEPENDENCYの警告を修正するにはどうすればいいですか?
-
[解決済み] Angular JS $locationChangeStart 次の url ルートオブジェクトを取得する
-
[解決済み] ReferenceError: Angularは定義されていません。
-
[解決済み] AngularJSのリソースプロミス
-
[解決済み] controllerAs "プロパティを使用する理由は何ですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angularjsのng-viewが動作しない。
-
[解決済み] X-Frame-Options'を'SAMEORIGIN'に設定しているため、フレーム内での表示を拒否された。
-
[解決済み] シンプルなangularjsの日付入力
-
[解決済み] AngularJSの$parentは何を意味するのですか?
-
[解決済み] Apigee API へのリクエストで 401 レスポンスエラーが発生する
-
[解決済み] Angularのui-routerでデフォルトの状態を設定する方法
-
[解決済み] controllerAs "プロパティを使用する理由は何ですか?
-
[解決済み] createspyとcreatespyobjの違いは何ですか?
-
[解決済み] AngularJSのコントローラを指定する:ngControllerと$routeProviderを使用する利点
-
[解決済み] AngularJSでコントローラを2回実行する場合の対処法