Я удалил # из url, используя приведенный ниже код:
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
он не работает.
Любая помощь приветствуется
вам, вероятно, не хватает базового url, который требуется для режима html 5. положите <base href="/" target="_blank">
в <head>
Я не могу повторить вашу ошибку, вы имеете в виду, если вы измените URL-адрес в своем браузере, это не сработает? вот пример, который я сделал в jsfiddle, похоже, что он работает нормально.