Ember CLI /浏览器刷新/生产/ 404

Cok*_*aka 8 ember.js ember-cli

我使用Ember CLI 0.1.15和emberjs开发了我的webapp.1.8.1

我用这个命令构建了应用程序:ember build --environment production,然后我从我项目的dist文件夹下生成的文件中生成了一个WAR,然后我将WAR放在tomcat的webapps文件夹中.

所以,当我打开应用程序时:http:// mytomcat/myapp / ...它很好,我看到了我的登录屏幕,我登录了,并在我的应用程序中导航,一切都很好.我也可以做后退/前进按钮,并且ember可以很好地处理过渡.

但是当我点击浏览器上的刷新按钮时 - 浏览器的地址栏显示了http:// mytomcat/myapp/inventory /那一刻 - 我从tomcat得到了404回复.

然后我弄清楚它为什么会发生:刷新按钮向tomcat发送一个请求路径/ myapp/myinventory/...当然,服务器上不存在路径/ myinventory.我们在浏览器上看到的所有路由 - 除了基本URL,http:// mytomcat/myapp / - 都是在客户端生成的.

所以,我的问题是:处理这种情况的正确方法(在余烬中)是什么?我需要刷新按钮才能正常工作.任何方式让ember拦截刷新按钮点击事件?

我想这个问题与此有关:https://github.com/stefanpenner/ember-app-kit/issues/486,但它没有我需要的答案.

提前谢谢,拉卡

---更新---

可能相关:http://eviltrout.com/2014/04/10/the-refresh-test.html

Kal*_*man 8

  1. config/environment.js文件内部,有一个名为的属性locationType.将其值设置为hash

  2. 手动移动文件/dist夹中的文件非常耗时且烦人.相反,您可以使用您尝试将文件移动到的webapps中的位置指定您的output-path属性.ember-cli.另一种选择是将此选项指定为ember serverember build

  • 那么这是否意味着如果没有路径根部的"恼人"小散列,就不可能将Ember应用程序投入生产? (3认同)
  • 我也有同样的问题.将位置类型更改为"哈希"后,网址中的"#".对此有何解决方案? (2认同)