Laravel 5/ 5.4 分页器在 NGINX 生产环境中不工作
Posted
技术标签:
【中文标题】Laravel 5/ 5.4 分页器在 NGINX 生产环境中不工作【英文标题】:Laravel 5/ 5.4 paginator is not working in NGINX production environement 【发布时间】:2017-11-19 23:42:30 【问题描述】:在我的本地环境中,我做了$items = Model::paginate(10);
并且它有效。然后我把它推到生产中,当我点击分页链接时,它一次又一次地显示第 1 页。然后我做了dd($items)
。我发现length aware pagination
的current Page
属性在我将地址更改为/items?page=*
时没有改变。如何使当前页面属性相应更改或有其他东西?提前谢谢
【问题讨论】:
所以 Laravel 5.3 或 5.4 laravel 5.4 是 【参考方案1】:我正在使用 ubuntu 16.04 nginx 服务器。问题是$_GET
会话变量没有正确设置。所以我所做的是在/etc/nginx/sites-available/default
和location /
block/ 指令中我将try_files $uri $uri/ /index.php?$query_string;
更改为try_files $uri $uri/ /index.php?$args;
并且它起作用了。或查看Laravel 5 - NGINX Server Config Issue with URL Query Strings
【讨论】:
哇,我一直在寻找导致此问题的原因 far 太久了。这完美地解决了这个问题。谢谢! 这对我有用,谢谢,但请下次使用代码格式化工具。【参考方案2】:非常感谢#Ahmed
我只需要改变我的
location /
try_files $uri $uri/ /index.php?$query_string;
到
location /
index index.php;
try_files $uri @rewriteapp;
location @rewriteapp
rewrite ^(.*)$ /index.php/$1 last;
我看到我的其他一些网站正在使用 @rewriteapp 部分,并且似乎工作正常。
【讨论】:
顺便问一下```@rewriteapp```是什么?? @rewriteapp 就像一个变量,它在我的示例中引用了第二个位置属性。它最后注入'rewrite ^(.*)$ /index.php/$1;'部分以上是关于Laravel 5/ 5.4 分页器在 NGINX 生产环境中不工作的主要内容,如果未能解决你的问题,请参考以下文章
[ Laravel 5.5 文档 ] 数据库操作 —— 在 Laravel 中轻松实现分页功能