如何正确将路径转发到Nginx中的Ember应用程序?

时间:2019-03-21 13:31:50

标签: nginx ember.js

Ember不能像这样简单地配置:

location / {
    index index.html;
}

我们需要从根目录访问的public目录的所有可能内容。例如。 my.example.com/img/logo.png

location / {
    try_files $uri $uri/ /index.html;
}

但是,我们需要每个路由(路径)都是Ember应用程序的可能入口点,因此我们需要将非资产文件重定向到index.html

我曾以为会是这样。 这是错误的:

location / {
    try_files $uri $uri/ index.html$uri$is_args$args;
}

附加到index.html的路由将产生404。

下一次尝试,请在内部使用#哈希,不要让用户知道。 这是错误的:

location / {
    try_files $uri $uri/ index.html#$uri$is_args$args;
}

这不起作用,因为#将其余部分变成注释。据我了解,nginx还是会在内部忽略#

下一次尝试,我们改为使用?这有效:

location / {
    try_files $uri $uri/ /index.html?/$request_uri;
}

我们现在可以从任何非索引路径“输入”应用程序。 但是,现在我们已经“用完”了查询字符串。我们不能再使用查询字符串,至少不能将其用作输入路径,例如可共享的链接。因此,问题是:

如何正确将路径转发到Nginx中的Ember应用程序?

  • 允许深入的道路
  • 允许查询字符串

例如:my.example.com/posts/pinned?sort=asc

0 个答案:

没有答案