2014-02-15 29 views
1

我有以下JS代碼到我的ember.js應用程序。沒有標籤的Ember路線

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

問題是,我只能訪問使用域/#/啤酒/所有。閱讀ember.js文檔,我嘗試使用這個:

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

但是不行。我想訪問使用以下網址:域名/啤酒/所有

我做錯了什麼?

謝謝

回答

3

這是做這件事的正確方法。但是,當使用History API時,如果用戶直接輸入路由,則還需要確保服務器返回每個路由下的Ember應用。

例如,如果您輸入地址欄「domain/beers/all」,服務器應該返回您的Ember應用程序,Ember會找出要顯示的內容。

請注意,歷史API在某些較舊的瀏覽器中不可用。你可以檢查這個在http://caniuse.com/history

+0

對。那麼,如果沒有使用History API,只有第一個代碼,它不應該工作? – elf

+0

我不確定我是否理解 - 該怎麼辦? – chopper

+0

對不起,我的意思是:看起來代碼是正確的,但是無法訪問域名/啤酒/全部 – elf

0

你可以簡單地創建這些路線作爲文件夾,並將您的index.html文件中的所有。

由於index.html文件包含一個「base href」-tag,所以可以找到其他文件,因此您不需要這些文件夾中的任何其他文件。