2016-10-22 73 views
1

我也做了以下内容:Nginx的重写规则Angularjs删除#散列在URL中的动态路由

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的块写为我的动态路线?谢谢!

+0

你只需要加载index.html,你正在做什么,你可以检查它试图访问什么文件,导致404(检查错误或访问日志)? – Satys

回答

0

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