如何在节点 + Ember 应用程序中处理路由

How do you handle routing in a Node + Ember application?

本文关键字:应用程序 处理 路由 Ember 节点      更新时间:2023-09-26

我有一个 Node + Ember 应用程序。我遇到了有关路线的问题。Node 和 Ember 都处理路由,我有一些路由我希望 Node 处理,但有些路由,我希望 Ember 处理。例如,当页面加载时,Node的路由器会启动,所以我在Ember中声明的任何路由都是无用的。

假设我在 Ember JS 中有一个名为"settings"的路由。当我使用 http://myapp.com/settings 中的另一个视图使用 {{#link-to}} 帮助程序导航到"时,我可以看到该页面。但是,一旦我进入该页面并点击重新加载,我就会得到 404,因为调用了 Node 的路由器并且该路由未在 Node 中声明。我该如何解决此问题?

我不

使用node,但我想这个概念对你来说可能和我的应用程序相同(我使用的是Java Spring(。您应该修改路由以app.get('/*')或在节点中使用通配符并返回 Ember 的索引.html。所以基本上,/下的任何 url aka 都会获得您的 Ember 应用程序,而不仅仅是/路由

余烬处理剩下的事情。看看这个线程(它适用于nginx,但原理是一样的(: http://discuss.emberjs.com/t/how-to-serve-all-routes-on-a-production-server-exactly/6372/2

如果该链接在将来的某个时候关闭,这里有一个有用的 nginx 配置,它重写了/下的所有规则,除了带有 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
    }
}