Маршруты Angular.js не работают на WAMP

Я работаю над созданием одностраничного приложения Angular.js, созданного со стеком Express, Node, mySQL. Я установил следующий код для маршрутов:

angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives']).
  config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
     $routeProvider
      .when('/', {
        templateUrl: 'partials/index',
        controller: IndexCtrl
      })
      .when('/addPost', {
        templateUrl: 'partials/addPost',
        controller: AddPostCtrl
      })
      .when('/readPost/:id', {
        templateUrl: 'partials/readPost',
        controller: ReadPostCtrl
      })
      .when('/editPost/:id', {
        templateUrl: '/partials/editPost',
        controller: EditPostCtrl
      })
      .when('/deletePost/:id', {
        templateUrl: 'partials/deletePost',
        controller: DeletePostCtrl
      })
      .when('/todos', {
        templateUrl: 'partials/todos',
        controller: TodosCtrl
     })
     .otherwise({
        redirectTo: '/'
     });

    $locationProvider.html5Mode(true);
  }]);

Когда я захожу в свое приложение localhost: 3000 и затем нажимаю на ссылку для localhost: 3000 / todos, все работает, однако, когда я обновляю страницу, я получаю сообщение об ошибке «Cannot GET / todos». После некоторых исследований я обнаружил, что проблема заключается в том, что при обновлении сервер пытается загрузить / todos и, поскольку ресурс не существует, возникает ошибка. Похоже, решение состоит в том, чтобы настроить mod_rewrite для перенаправления любой страницы в индекс, чтобы angular мог правильно ее направить.

Поэтому я позаботился о том, чтобы mod_rewrite не передавался в httpd.conf, и обновил следующий раздел:

<Directory />
    AllowOverride all
    Order Allow,Deny
    Allow from all
</Directory>

Затем создал файл .htaccess в моем корневом каталоге с помощью app.js. Внутри файла .htaccess, который я создал, я добавил следующий код:

<IFModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^(.*)$ '/'
</IFModule>

Затем я перезапустил apache и нажал обновить на localhost: 3000 / todos и получил то же самое сообщение «Cannot GET / todos». Что я здесь не так делаю?

Некоторые мысли у меня есть

Я не знаю, в какой каталог поместить .htaccess, поэтому я просто положил его в корень.Я не уверен, что '/' является правильным местом для отправки пользователя, я хочу, чтобы он пошел в индекс, но так как у меня есть только файл index.jade внутри /public/index.jade, мне интересно, нужно ли мне указать на это как-то, но расширение нефрита кажется неправильным.Собирается ли написанное мной RewriteRule для перехода пользователя на целевую страницу или на правильную страницу, которую он обновил / добавил в закладки, т. Е. Обновляет на localhost: 3000 / todos должен перенести вас на страницу задач, а не на домашнюю страницу?

Ответы на вопрос(1)

Ваш ответ на вопрос