如何处理Node + Ember应用程序中的路由?

我有一个Node + Ember应用程序。 我遇到了一个围绕路线的问题。 Node和Ember都处理路由,我有一些我希望Node处理的路由,但是有些我想Ember处理。 例如,当页面加载的时候,Node的路由器踢进来,所以我在Ember中声明的任何路由都是没用的。

假设我在Ember JS中有一个叫做“settings”的路由。 当我通过使用Ember中另一个视图的{{link-to}}助手导航到“ http://myapp.com/settings ”时,我可以看到该页面。 但是,一旦我在该页面上,并重新加载,我得到一个404,因为Node的路由器被调用,该路由没有在Node中声明。 我如何解决这个问题?

我不使用节点,但我想象的概念可能是相同的,因为它是我的应用程序(我使用Java的弹簧)。 你应该修改你的路由到app.get('/*')或者你在节点中使用通配符并返回Ember的index.html。 所以基本上,任何url / aka下都可以得到你的Ember应用,而不仅仅是/路由

其余的Ember处理。 看看这个线程(它的nginx,但主要是一样的): http : //discuss.emberjs.com/t/how-to-serve-all-routes-on-a-production-server-恰好/二分之六千三百七十二

如果链接在将来的某个时刻出现故障,下面是有用的nginxconfiguration,它重写了/ ember index.html页面中除assets之外的所有规则:

 server { listen 80 default; server_name my.domain.com; root /path/to/app/root; location / { rewrite ^ /index.html break; } location /assets/ { # do nothing and let nginx handle this as usual } }