2

我做了以下事情:

AngularJS 应用程序

在 app.js 中:

$locationProvider.html5Mode(true);

在 index.html 中:

<base href="/">

nginx配置

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

部署后,静态页面一切正常(# 井号被移除)。我可以直接进入http://fakeurl/abouthttp://fakeurl/download页面;如果我刷新浏览器,页面仍然会加载。

但是,当我直接进入动态页面时:

http://fakeurl/cars/:car_id

然后nginx会服务404。

如果我使用# 路径,那么它会重定向到没有# 符号的路径并显示页面;但是当我再次刷新页面时,它显示 404。(这只发生在动态路由上)

http://fakeurl/#/cars/:car_id

http://fakeurl/#/shops/:shop_id

我需要在 nginx 块中编写哪些重写规则来为我的动态路由提供服务?谢谢!

4

2 回答 2

0

我认为你可以使用这个正则表达式模式^(.*)\/#并用$1.

于 2017-09-27T03:12:43.847 回答
0

我昨晚把我所有的午夜油都烧了,我在这里找到了解决办法。如果你有更好的,请在这里发布,以便我学习

https://gist.github.com/mreigen/4dc8effec8186315c3aac4ce6da46c9a

于 2016-10-22T19:12:43.023 回答