2014-02-15 25 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,所以可以找到其他文件,因此您不需要这些文件夹中的任何其他文件。