Angular js路由没有#不工作

时间:2016-04-23 06:33:09

标签: javascript angularjs angular-ui-router

我已使用以下代码从网址中删除了#:

app.config(function($locationProvider) {
       $locationProvider.html5Mode(true);
     });

如果我使用主页链接访问网站,如果我直接打开任何其他链接而不是主页它不能正常工作,它工作正常。

我的路线代码如下:

(function () {
    'use strict';
    var app = angular.module('app');

     app.config(function($locationProvider) {
       $locationProvider.html5Mode(true);
     });

    // Collect the routes
    app.constant('routes', getRoutes());
    // Configure the routes and route resolvers
    app.config(['$routeProvider', 'routes', routeConfigurator]);

    var resolver = function (access) {
        return {
            load: function ($q) {
                if (access) { // fire $routeChangeSuccess
                    var deferred = $q.defer();
                    deferred.resolve();
                    return deferred.promise;
                } else { // fire $routeChangeError
                    return $q.reject("/login");
                }
            }
        }
    }
    function routeConfigurator($routeProvider, routes) {
        routes.forEach(function (r) {
            $routeProvider.when(r.url, r.config);

        });
        $routeProvider.otherwise({ redirectTo: '/' });

    }
    // Define the routes 
    function getRoutes() {
        return [
            { url: '/', config: { templateUrl: 'app/home/home.html', title: 'Home' } },
            { url: '/login', config: { title: 'login', templateUrl: 'app/admin/login.html' } },
            { url: '/aboutus', config: { title: 'About Us', templateUrl: 'app/aboutus/aboutus.html' } },
            { url: '/apis', config: { title: 'Api', templateUrl: 'app/apis/apis.html' } },
            { url: '/apisdetails', config: { title: 'Api', templateUrl: 'app/apis/apisdetails.html' } },
            { url: '/intermediates', config: { title: 'Intermediates', templateUrl: 'app/intermediates/intermediates.html' } },
            { url: '/intermediatesdetails', config: { title: 'Intermediates', templateUrl: 'app/intermediates/intermediatesdetails.html' } },
            { url: '/products', config: { title: 'Products', templateUrl: 'app/products/products.html' } },
            { url: '/productdetails', config: { title: 'Products', templateUrl: 'app/products/productdetails.html' } },
            { url: '/industryserved', config: { title: 'Industry Served', templateUrl: 'app/industryserved/industryserved.html' } },
            { url: '/enquirys', config: { title: 'Enquiry', templateUrl: 'app/enquiry/enquiry.html' } },
            { url: '/latestnews', config: { title: 'News', templateUrl: 'app/news/news.html' } },
            { url: '/newsdetail/:newsID', config: { title: 'News', templateUrl: 'app/news/newsdetail.html' } },
            { url: '/contactus', config: { title: 'Contact Us', templateUrl: 'app/contactus/contactus.html' } },
            { url: '/industryserved', config: { title: 'Industry Served', templateUrl: 'app/industryserved/industryserved.html' } },
            { url: '/searchresult', config: { title: 'Search Result', templateUrl: 'app/search/searchresult.html' } },
            { url: '/enquirylist', config: { title: 'Enquiry List', templateUrl: 'app/admin/enquirylist.html' } },
            { url: '/dashboard', config: { title: 'ashboard', templateUrl: 'app/admin/dashboard.html' } },
            { url: '/api', config: { title: 'ashboard', templateUrl: 'app/admin/api.html' } },
            { url: '/intermediate', config: { title: 'Intermediate List', templateUrl: 'app/admin/intermediate.html' } },
            { url: '/product', config: { title: 'ashboard', templateUrl: 'app/admin/product.html' } },
            { url: '/contactlist', config: { title: 'contact list', templateUrl: 'app/admin/contactlist.html' } },
            { url: '/news', config: { title: 'News', templateUrl: 'app/admin/News.html' } },
            { url: '/apiintermediate', config: { title: 'apiintermediate', templateUrl: 'app/admin/apiintermediate.html' } }
        ];
    }
})();

作为一个示例,我的网站链接www.xyz.com当我通过主页浏览网站时,它正在运行。但如果我直接打开www.xyz.com/product则无效。

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

您可能缺少html 5模式所需的基本网址。 将<base href="/" target="_blank">放入<head>

更新

我无法重复您的错误,您的意思是如果您在浏览器中更改网址,它不起作用吗? here是我在jsfiddle中制作的一个例子,看起来它工作得很好。