所以根据
Ember’s documentation Ember默认使用
hashchange事件.这就是为什么我们有一个花哨的#/ some / url设置.我们还可以将其设置为使用浏览器的
history API.
我注意到,Built with Ember上列出的大多数(如果不是全部)网站显然使用了历史API.这是有道理的,因为它使URL看起来更自然.
所有这一切就是说我(sorta)了解在哪里,如何以及为什么#被抓住了.
我的问题具体涉及EmberCLI.我注意到,当我创建一个简单的应用程序时,#不在URL中.是因为我没有部署吗?还是CLI默认为历史记录?如果是这样,这个设置在哪里?我找不到一个实例
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: { ....
就像一个快速的插头一样,位置历史是一个很难设置的,因为你基本上不得不告诉您的服务器从基本页面发送的任何东西,然后忽略任何事情,但它只是一次性的设置.