Недавно я заметил, что при использовании модуля ngRoute
в приложении AngularJS маршрут содержит #!
в URL-адресе, который ранее был только #
.Угловые маршруты содержат #! в url вместо #
Например, www.webiste.com/#/login
становится www.website.com/#!/login
меня, чтобы позволить html5Mode
а также отключить requireBase
, который удаляет базу в целом, используя код,
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
и URL изменения в www.website.com/login
, который работает отлично, но вводит в заблуждение и не является таким, как URL-адреса Angular SPA.
Если я не включил html5Mode
, URL-адрес закодирован, и я не могу обойти его. Таким образом, www.website.com/#/login
становится www.website.com/#!/#%2Flogin
(Примечание: /
кодируется как %2F
).
Это изменение, внесенное разработчиками для определенной цели? Что это меняет? Какие изменения необходимо внести в мое приложение, чтобы он работал? Я делаю что-то неправильно?
Github вопрос: https://github.com/angular/angular.js/issues/15547
использование хэша в URL, идет вразрез с точкой включения html5Mode ... так почему вы используете хэш вообще? Что касается hashprefix, прочитайте документы относительно этого – charlietfl
где-то в маршрутизации (может быть в app.js), вы устанавливаете префикс как этот «$ locationProvider.hashPrefix ('!');». Удалить "!" –
Я нигде не устанавливаю ничего подобного. Я включил 'html5Mode', чтобы избавиться от кодировки'/'(косые черты) в URL-адресах. –