Nginx重写规则,用于Angularjs在动态路由中删除url中的#散列
我已经做了以下工作: AngularJS应用程序 在app.js中:Nginx重写规则,用于Angularjs在动态路由中删除url中的#散列,angularjs,nginx,routing,config,html5mode,Angularjs,Nginx,Routing,Config,Html5mode,我已经做了以下工作: AngularJS应用程序 在app.js中: $locationProvider.html5Mode(true) 在index.html中: nginx配置 地点/{ 尝试使用文件$uri/index.html; } 部署后,静态页面的工作状态良好(散列符号已删除)。我可以直接转到http://fakeurl/about或http://fakeurl/download页面;如果刷新浏览器,页面仍会加载 但是,当我直接转到动态页面时: http://fakeurl/c
$locationProvider.html5Mode(true)代码>
在index.html中:
nginx配置
地点/{
尝试使用文件$uri/index.html;
}
部署后,静态页面的工作状态良好(散列符号已删除)。我可以直接转到http://fakeurl/about
或http://fakeurl/download
页面;如果刷新浏览器,页面仍会加载
但是,当我直接转到动态页面时:
http://fakeurl/cars/:car_id
然后nginx将提供404
如果我使用#路径,那么它将重定向到不带#符号的路径并显示页面;但是当我再次刷新页面时,它显示404。(这仅适用于动态管线)
http://fakeurl/#/cars/:car_id
http://fakeurl/#/shops/:shop_id
我需要在nginx块中编写哪些重写规则来服务于我的动态路由?谢谢 我昨晚熬夜了,我在这里找到了解决办法。如果你有一个更好的,请张贴在这里,这样我可以学习
我想你可以使用这个正则表达式模式^(.*)\/\35;
并用$1
重写它,你只需要加载index.html,你正在这样做,你能检查它试图访问什么文件,导致404(签入错误或访问日志)?代理传递是关键吗?我想我的情况与此完全相同。。但我不太明白引用的github页面的哪几行与我们相关?