簡體   English   中英

帶有RequireJS路由的AngularJS刪除哈希

[英]AngularJS with RequireJS routing removes hash

我正在使用Angular Routes確定要向用戶顯示的視圖,如下所示:

define(['angular', './app'], function(angular, app) {
    'use strict';
    return angular.module('app', ['ngRoute']).
    config(function($routeProvider, $locationProvider) {
        $routeProvider
            .when('/', {
                templateUrl:'assets/partials/partial1.html',
                controller: 'MyCtrl1'
            }).when('/mada', {
                templateUrl:'assets/partials/partial2.html',
                controller: 'MyCtrl2'
            })
            .otherwise({redirectTo: '/'});

    });

});

目前,路由有效,但僅如下所示:localhost /#/ mada或localhost /#/我希望能夠看到localhost / mada

我知道添加

$locationProvider.html5Mode(true);

將擺脫哈希。 但這仍然無法使用戶轉到:localhost / mada,因為這將返回服務器404。

能做到嗎? 怎么樣?

如果您不使用服務器端語言,則將此代碼放在html頭中。

<base href="/">

喜歡 :

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

並將其放在配置塊中:

$locationProvider.html5Mode(true);

如果您使用服務器端語言,則使用以下代碼:

app.get('*', function(req, res) {
    res.render('index');
});

代替

app.get('/', function(req, res) {
    res.render('index');
});

並將此代碼放在config塊中:

$locationProvider.html5Mode(true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM