Ember.js, EmberCLI - удаление хэша (#) из URL-адреса
Итак, согласно Документация Ember Ember по умолчанию использует событие hashchange. Вот почему у нас есть фантазия #/some/url
. Мы также можем установить его для использования API history браузера.
Я заметил, что большинство (если не все) сайтов, перечисленных в Built with Ember, по-видимому, используют API истории. Это имеет смысл, потому что это делает URL более естественным.
Все, что я скажу, что я (sorta) понимаю, где, как и почему привязывается #
.
Мой вопрос относится конкретно к EmberCLI. Я заметил, что при создании простого приложения #
отсутствует в URL-адресе. Это потому, что я еще не развернул его? Или CLI по умолчанию для истории api? Если да, то где это? Я не могу найти экземпляр
App.Router.reopen({
location: 'history'
});
Ответы
Ответ 1
Первый, который я нажал, использовал историю хэша;) https://fnd.io/
По умолчанию Ember использует событие изменения хэша, в основном из-за совместимости с браузером. http://caniuse.com/history
В ember-cli по умолчанию используется auto
. http://emberjs.com/api/classes/Ember.Location.html#toc_autolocation
Если вы посмотрите router.js
, вы заметите
var Router = Ember.Router.extend({
location: YourAppENV.locationType
});
который вытягивает свои настройки из config/environment.js
module.exports = function(environment) {
var ENV = {
baseURL: '/',
locationType: 'auto',
EmberENV: {
....
Так же, как быстрый плагин, история местоположений еще сложнее настроить, так как вы
по сути, нужно сказать, что ваш сервер будет обслуживать с базовой страницы всякий раз, когда он попадает, и игнорировать что-либо после этого, но это действительно просто одноразовая настройка.
Ответ 2
Для locationType: 'auto'
Ваши маршруты будут http://localhost:4200/login
Для locationType: 'hash'
Ваши маршруты будут http://localhost:4200/#/login
Что это.