AngularJS-маршрут не работает, если он вставлен как новый адрес
Я создаю простое приложение angularjs.
это мой конфиг:
app.config(function ($routeProvider, $locationProvider)
{
$routeProvider.when("/home", {
controller: "homeController",
templateUrl: "/views/home.html"
});
$routeProvider.when("/login", {
controller: "loginController",
templateUrl: "/views/login.html"
});
$routeProvider.otherwise({ redirectTo: "/home" }); // or notfound.html
$locationProvider.html5Mode(true);
});
и в моем index.html
<base href="/">
когда я начинаю веб-сайт с index.html
(localhost/index.html) файл все нормально. URL-адрес меняется на localhost/home
или же localhost/login
и все работает.
но когда я использую домашний или логин URL, я получаю ошибку 404.
2 ответа
Вам нужно подключить сервер для обработки 404 ошибок.
http://localhost/home
по запросу браузера ищет домашний путь на вашем сервере или home.html, когда он не найден, вы получаете 404
Когда вы выбираете ссылку в угловом приложении, она загружает index.html (приложение) и направляет в #/home
затем повторно обратитесь к /home
Вы можете настроить свой сервер для маршрутизации всего трафика на /
и пусть приложение обрабатывает маршрутизацию.
ищите здесь подобное решение. Динамические маршруты AngularJS без хэштега
редактировать
перенаправление 404 в основной индекс Настройка пользовательской страницы ASP 404 с перенаправлением для веб-сайта IIS7
Если вы работаете без веб-сервера, вам нужно будет поставить префикс перед ссылками #
знак.
<a href="#/login">