Ember.js,EmberCLI-从URL中删除哈希(#)

Ember.js,EmberCLI-从URL中删除哈希(#),ember.js,ember-cli,Ember.js,Ember Cli,因此,根据Ember,默认情况下使用事件。这就是为什么我们有花哨的#/some/url设置。我们还可以将其设置为使用浏览器的API 我注意到,上列出的大多数(如果不是全部)站点显然都使用历史API。这很有意义,因为它使URL看起来更自然 所有这些都意味着我(有点)理解了在哪里、如何以及为什么会被加上 我的问题特别与我有关。我注意到,当我创建一个简单的应用程序时,不在URL中。这是因为我还没有部署它吗?或者CLI是否默认为历史api?如果是,这套在哪里?我找不到这样的例子 App.Router.r

因此,根据Ember,默认情况下使用事件。这就是为什么我们有花哨的
#/some/url
设置。我们还可以将其设置为使用浏览器的API

我注意到,上列出的大多数(如果不是全部)站点显然都使用历史API。这很有意义,因为它使URL看起来更自然

所有这些都意味着我(有点)理解了
在哪里、如何以及为什么会被加上

我的问题特别与我有关。我注意到,当我创建一个简单的应用程序时,
不在URL中。这是因为我还没有部署它吗?或者CLI是否默认为历史api?如果是,这套在哪里?我找不到这样的例子

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

我单击的第一个使用了哈希历史;)

默认情况下,Ember使用哈希更改事件,这主要是由于跨浏览器兼容性

在ember cli中,默认情况下使用
auto

如果你查看
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:“哈希”
您的路线将是
http://localhost:4200/#/login


就是这样。

触摸find.io。我之前点击了一个随机样本,他们所有的URL都省略了#。我不知道你说的我不会改变路线是什么意思,虽然我的配置很好。我完全忽略了这一点。我必须找到一篇好文章或是一些关于每个位置类型的优缺点的东西,所以,在我开口之前,我应该做更多的搜索。我在
location
api上找到了。@kingpin2k,就像你的评论一样,这只是一次设置。我正试图做那个设置,但我停留在静态资源路径上。所有内容都以“moduleName”作为前缀。你能看看这个吗?这个默认的hashchange在本地主机上不起作用。我的意思是,当使用localhost时,我在地址栏中看不到任何路由?