не могу направить напрямую с помощью браузера URL, что я могу сделать? - PullRequest
0 голосов
/ 28 июня 2018

Я не могу направить напрямую, используя вход в браузере. Я использую $ locationProvider.html5Mode (true); поэтому, когда я пишу URL в браузере, они не могут маршрутизировать в угловых JS.

AppRouting.js

myApp.config(['$routeProvider',
function($routeProvider) {
  $locationProvider.html5Mode(true);
  $routeProvider.
  when('/', {
    templateUrl: 'home.html',
    controller: 'HomeController'
  })
  .when('/login', {
    templateUrl: 'login.html'
  })
  .otherwise({
    redirectTo: '/phones'
  });
}]);

так что я могу сделать ???

1 Ответ

0 голосов
/ 28 июня 2018

Ваш веб-сервер должен иметь возможность перенаправить ваш URL, чтобы он работал. Допустим, вы находитесь на "http://site" и у вас есть ссылка, ведущая на" http://site/foo/bar". Когда вы нажимаете на эту ссылку, вы на самом деле не переходите по этому URL-адресу, а просто "http://site/index.html#/foo/bar", angularjs обрабатывает все остальное.

Однако, если вы напрямую обращаетесь к "http://site/foo/bar",, ваш веб-сервер попытается найти путь" / foo / bar "на вашем сервере, который не существует, поэтому вы должны настроить свой сервер для перенаправления всего в "index.html".

Поскольку вы используете Apache, вы можете добавить его в свой .htaccess:

RewriteEngine On  
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]  
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d  
RewriteRule ^ - [L]

# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html  

Подробнее здесь .

...