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 paginationcurrent Page 属性在我将地址更改为/items?page=* 时没有改变。如何使当前页面属性相应更改或有其他东西?提前谢谢

【问题讨论】:

所以 Laravel 5.3 或 5.4 laravel 5.4 是 【参考方案1】:

我正在使用 ubuntu 16.04 nginx 服务器。问题是$_GET 会话变量没有正确设置。所以我所做的是在/etc/nginx/sites-available/defaultlocation / 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.4 分页链接未显示在视图中

[ Laravel 5.5 文档 ] 数据库操作 —— 在 Laravel 中轻松实现分页功能

Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO

Laravel 5分页链接到错误的地方

如何在 Laravel 5 中对合并的集合进行分页?

laravel 轻松实现分页功能