问题
I am creating a website with AngularJS and I am using the ngRoute module to handle page requests.
In my app.config
function I have setup the routing as follows:
app.config(function($routeProvider, $locationProvider, $httpProvider){
$locationProvider.html5Mode(true);
$routeProvider.when('/', {
templateUrl: 'pages/index.html',
controller: 'mainController'
}).when('/testpage', {
templateUrl: 'pages/test.html',
controller: 'testController'
}).otherwise({
redirectTo: '/'
});
});
When I try to access the test page, on my MAMP local server, by adding a #
before the page name like this: http://dev.mysite.com:8888/#testpage
everything works fine.
However, if I don't add the #
before the page name, like this: http://dev.mysite.com:8888/testpage
I get a 404 error.
I have added <base href="/">
to the <head>
of my index.html page that contains the <div ng-view>
tag.
I would very much appreciate it if someone could explain what I am doing wrong.
回答1:
Angular looks for the # symbol to handle routing. Everything after the # symbol is interpreted by the routing function. No # symbol, no angular route. If you can run in Html5 mode, then you can turn this off, but to work with older browsers, it is needed.
来源:https://stackoverflow.com/questions/29088017/angularjs-routing-throws-404-without