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

时间:2015-02-19 22:05:36

标签: 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。我们在浏览器上看到的所有路线 - 除了基本网址http://mytomcat/myapp/ - 都是在客户端生成的。

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

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

提前致谢, 拉嘎

---更新---

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

1 个答案:

答案 0 :(得分:8)

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

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