たとえば、「http://www.test.com/serie/2」にリダイレクトしてセリエの情報ページにアクセスしようとしています。AngularJSを使用してURLパラメータを使用してページにリダイレクトするとき
角度ルーティングを使用していましたが、以前にページをリロードしたときに404の問題が発生しました。これは現在動作しているようですが、セリエイドページにリダイレクトされます。ここまでは私のコードです。
ホームビュー:
<div class="col col-md-10">
<div class="col col-md-3" ng-repeat="serie in series | limitTo: 10">
<serie-card
id="serie.id"
name="serie.name"
genres="serie.genres"
img="serie.image.medium"
lang="serie.language"
rating="serie.rating"
status="serie.status"
ng-click="openSerie(serie)">
</serie-card>
</div>
</div>
セリエカードディレクティブのコントローラ:
app.controller('serieCardController', ['$scope', '$location', function($scope, $location){
$scope.openSerie = function(id){
var url = rootUrl+"/serie/" + id;
window.location = url;
}
}]);
マイapp.jsファイル
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$routeProvider.
when('/home', {
templateUrl: 'templates/home.php',
controller: 'homeController'
}).
when('/serie/:id',{
templateUrl: 'templates/serie.php',
controller: 'serieInfoController'
}).
when('/login',{
templateUrl: 'templates/login.php',
controller: 'loginController'
}).
otherwise({
redirectTo: '/home'
});
$locationProvider.html5Mode(true);
}]);
それは場合に役立ちます私は知りませんurlページの拡張を削除するために.htaccessを追加しました。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
ErrorDocument 404 /error.php
他の場所で回答が見つからなかったので、誰かがこの問題を助けてくれることを願っています。
私は、IDだけで試したserie/id問題に気付きました。 また、$ location.pathを使用しようとしましたが、 "$ location.pathは関数ではありません"というエラーが表示され、$ locationが挿入されています。 –
'window.location'は期待どおりに動作しますか? – Sajal
はい、それは私を "www.test.com/serie/1"のようなURLにリダイレクトしますが、404で応答します –