我做了以下事情:
AngularJS app
在app.js中:
$locationProvider.html5Mode(true);
在index.html中:
<base href="/">
nginx config
location / {
try_files $uri /index.html;
}
部署完成后,静态页面的工作正常(#hake sign被删除)。我可以直接转到http://fakeurl/about
或http://fakeurl/download
页;如果我刷新浏览器,页面仍会加载。
但是,当我直接进入动态页面时:
http://fakeurl/cars/:car_id
然后nginx将提供404。
如果我使用#path,那么它会重定向到没有#符号的路径并显示页面;但是当我再次刷新页面时,它会显示404.(这只适用于动态路线)
http://fakeurl/#/cars/:car_id
http://fakeurl/#/shops/:shop_id
我需要在nginx块中编写哪些重写规则来为我的动态路由提供服务?谢谢!
答案 0 :(得分:0)
https://gist.github.com/mreigen/4dc8effec8186315c3aac4ce6da46c9a
答案 1 :(得分:0)
我认为您可以使用此正则表达式模式^(.*)\/#
并使用$1
重写它。