2014-02-15 3 views
1

У меня есть код JS для моего приложения ember.js.Ember Routes Without hashtag

Beers.Router.map(function(){ 
    this.resource('beers', {path: "/beers"}, function(){ 
    this.route('all'); 
    this.route('new'); 
    }); 
}); 

Проблема в том, что я могу получить доступ только через домен/#/пиво/все. Читая документацию ember.js, я стараюсь использовать это:

App.Router.reopen({ 
    location: 'history' 
}); 

Но не работает. Я хотел бы получить доступ, используя следующий url: domain/beers/all

Что я делаю неправильно?

Thanks

ответ

3

Это правильный способ сделать это. Однако при использовании API истории вам также необходимо убедиться, что сервер возвращает приложение Ember по каждому из этих маршрутов, если пользователь напрямую вводит маршрут.

Например, если вы набрали адресную строку «domain/beers/all», сервер должен вернуть ваше приложение Ember, и Ember выяснит, что отображать.

Обратите внимание, что API истории недоступен в некоторых старых браузерах. Вы можете проверить это на http://caniuse.com/history

+0

Право. Тогда без использования API истории, только с первым кодом, он не должен работать? – elf

+0

Я не уверен, что понимаю - что не должно работать? – chopper

+0

К сожалению, я имел в виду: кажется, что код верен, однако, не может получить доступ к домену/пиву/все – elf

0

Вы можете просто создать эти маршруты в виде папок и поместить ваш файл index.html во всех них.

Вам не нужны никакие другие файлы в этих папках, так как index.html-файл содержит «base href» -tag, так что другие файлы могут быть найдены.