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

Что это.