Как: обновить маршрут AngularJS

#javascript #angularjs #typescript

#javascript #angularjs #typescript

Вопрос:

Я пытаюсь создать проект Typescript SPA с помощью Visual Studio и использую AngularJS для обработки маршрутизации. Вот моя конфигурация…

 var app = angular.module("myApp", ["ngRoute"]);
app.config(($routeProvider, $locationProvider) => {
$routeProvider
    .when("/", {
        templateUrl: "/pages/index/index.html"
    })
    .when("/about", {
        templateUrl: "/pages/about/about.html"
    })
    .otherwise({ redirectTo: '/' });

$locationProvider.html5Mode(true);
});
  

Это работает нормально, так как заставляет URL-адреса выглядеть так, как я хочу. Однако, когда я перехожу к обновлению страницы, я получаю ошибку 404 или ошибку 403 в зависимости от того, является ли это главной страницей или страницей about. Как мне сделать так, чтобы он обновился до правильной страницы?

Ответ №1:

Это серверная вещь, ваш сервер обрабатывает весь ваш URL-адрес, как если бы это был обычный путь на сервере. Вы должны настроить это так, чтобы index.html оно всегда было нацелено, иначе ваш сервер попытается найти www.myserver.com/about страницу. Там для этого будет выдан код состояния 404, потому что ваш URL-адрес не найден или доступ к нему запрещен в случае каталога.

Комментарии:

1. Итак, мне пришлось бы создавать отдельный маршрут для каждой отдельной страницы, которую я решил создать на стороне сервера? Как бы вы порекомендовали сделать это на стороне сервера, IIS, Apache или что-то еще?

2. @chuloon вы должны настроить свою серверную технологию так, чтобы она всегда была нацелена на индексную страницу независимо от того, какой URL запрашивается. Какой обработчик на стороне сервера вы используете? Apache, IIS, node.js ?

3. На самом деле я очень новичок в использовании чего-либо серверного. Вся моя карьера была основана на интерфейсных технологиях, поэтому я ничего не подключал. Тем не менее, я использую firebase для своей базы данных, но это, вероятно, не то, что я должен использовать для решения этой проблемы. Я проведу небольшое исследование всего этого, но спасибо, что указали мне правильное направление!