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;
}
我们现在可以从任何非索引路径“输入”应用程序。 但是,现在我们已经“用完”了查询字符串。我们不能再使用查询字符串,至少不能将其用作输入路径,例如可共享的链接。因此,问题是:
例如:my.example.com/posts/pinned?sort=asc