2015-03-21 3 views
0

Я создаю простое приложение для управления персональными контактами, используя AngularJS. Я поместил все свои файлы в папку htdocs/angular-contacts/ моей машины Mac.ngRoute return 404 Не найдена ошибка

enter image description here

index.html

<!DOCTYPE html> 
<html ng-app='ContactsApp'> 
    <head> 
     <title>Contacts</title> 
     <base href='/'></base> 
    </head> 
    <body> 
     <h1>Contacts</h1> 
     <div ng-view=""></div> 
     <script src='/angular-contacts/jquery-2.1.3.min.js'></script> 
     <script src='/angular-contacts/angular.min.js'></script> 
     <script src='/angular-contacts/angular-route.min.js'></script> 
     <script src='/angular-contacts/angular-route.min.js.map'></script> 
     <script src='/angular-contacts/app.js'></script> 
     <script src='/angular-contacts/controller.js'></script> 
    </body> 
</html> 

app.js

angular.module('ContactsApp', ['ngRoute']); 
    .config(function($routeProvider,$locationProvider){ 
     $routeProvider 
      .when('/contacts',{ 
       controller: 'ListController', 
       templateUrl: 'list.html' 
      }); 
     $locationProvider.html5Mode(true); 
    }); 

controller.js

angular.module('ContactsApp') 
    .controller('ListController',function($scope){ 
     $scope.contacts = []; 
    }) 

list.html

<p>List views...</p> 

Почему я иду в http://localhost:8888/angular-contacts/contacts, я получил 404 Not Found ошибка.

Как исправить эту проблему? Как загрузить это list.html?

Примечание:

  1. Я использую MAMP (Apache).
  2. AngularJS: v1.3.14
  3. Угловая Маршрут: v1.3.14
+0

Этот вопрос задан несколько раз. если вы используете '$ locationProvider.html5Mode (true)', вы ДОЛЖНЫ включить переписывание ссылок на вашем сервере. https://docs.angularjs.org/guide/$location – Claies

ответ

1

Это потому, что

$routeProvider 
    .when('/contacts',{ 
     controller: 'ListController', 
     templateUrl: 'list.html' 
    }); 

ожидает http://localhost:8888/contacts местоположение, а не http://localhost:8000/angular-contacts/contats местоположения.

Вы должны добавить префикс в свою декларацию маршрута или даже лучше, conifgure the virtual host, чтобы вы могли использовать настоящий домен, а не подкаталог localhost.

Смежные вопросы