0

angularjs アプリケーションから # を削除したい $locationProvider を試しましたが、うまくいきません

ここに私の設定があります:

var TechdefeatApp = angular.module('TechdefeatApp',['ui.router']);
TechdefeatApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){
    $urlRouterProvider.otherwise("/")

    $stateProvider
    .state('/', {
        url: "/",
        templateUrl: "app/components/home/homeView.html",
        controller:"homeController"
    })
    .state('post', {
        url: "/post/:seo_url",
        templateUrl: "app/components/post/postView.html",
        controller:"postController"
    })
}]);

私は ui-sref を使用して URL を呼び出しています:

<a ui-sref="post({seo_url:post.seo_url})" title="{{post.title}}">{{post.title}}</a>

ブラウザの URL は次のように表示されます。

URL : http://jaancari.com/latest/#/post/un-ambassador-nikki-haley
URL : http://jaancari.com/latest/#/post/december-3-1984-bhopal-worst-industrial-accident-in-history
4

2 に答える 2

1

ハッシュバンといいます。それを削除するには、次のように角度設定で html5 モードを有効にする必要があります。

    var TechdefeatApp = angular.module('TechdefeatApp',['ui.router']);
    TechdefeatApp.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider ){
        $urlRouterProvider.otherwise("/")

        $stateProvider
        .state('/', {
            url: "/",
            templateUrl: "app/components/home/homeView.html",
            controller:"homeController"
        })
        .state('post', {
            url: "/post/:seo_url",
            templateUrl: "app/components/post/postView.html",
            controller:"postController"
        })

        $locationProvider.html5Mode(true);
    }]);

hashbang と html-mode の詳細については、https ://docs.angularjs.org/guide/$location をご覧ください。

于 2016-12-07T15:22:07.203 に答える
0

次のことを試しましたか

$locationProvider と html5Mode

これは、Angular アプリケーションを定義し、ルートを構成するときに行います。

$locationProvider.html5Mode(true);

相対リンクを設定する

<base>ドキュメントの に aを設定し<head>ます。

<!doctype html>
<html>
<head>
    <meta charset="utf-8">

    <base href="/">
</head>

.htaccess を変更

RewriteEngine   On
RewriteBase     /
RewriteCond     %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)
RewriteCond     %{REQUEST_FILENAME} !-f
RewriteCond     %{REQUEST_FILENAME} !-d
RewriteRule     ./index.html [L]
于 2016-12-07T15:20:22.297 に答える