所以根据 Ember的文档 Ember默认使用 hashchange 事件。这就是为什么我们有这种想法 #/some/url
建立。我们也可以将其设置为使用浏览器 历史 API。
我注意到列出了大多数(如果不是全部)网站 用Ember建造 显然使用历史API。这是有道理的,因为它使URL看起来更自然。
所有这一切都说我(sorta)了解的地方,方式和原因 #
得到了加强。
我的问题与EmberCLI有关。我注意到,当我创建一个简单的应用程序时 #
不在URL中。那是因为我还没有部署它吗?或者CLI默认为历史API?如果是这样,这套装置在哪里?我找不到一个例子
App.Router.reopen({
location: 'history'
});
我点击的第一个使用哈希历史记录;) 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: {
....
就像快速插件一样,位置历史记录设置起来有点困难,因为你
基本上必须告诉你的服务器在它被命中时从基页提供服务,并在此之后忽略任何内容,但它实际上只是一次性设置。
对于 locationType: 'auto'
你的路线将是 http://localhost:4200/login
对于 locationType: 'hash'
你的路线将是 http://localhost:4200/#/login
而已。