Pagination inside nocache always returns page 1 when full static caching ignores query strings

Geschlossen
#15,787 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@lazerg arbeitet bereits daran.

Seit 04.11.2026.

  • #15788 von @lazerg — offen

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
laravel, php
Bereich
backend, databases

Rechercherichtung

Start by tracing the POST /!/nocache request and the pagination resolver that reads the current page; the issue identifies query string removal before that resolver as the failure point. Reproduce with full static caching and ignore_query_strings enabled, then verify that ?page=2 renders page 2 inside the nocache region while the surrounding page uses the same static cache entry. An open linked pull request already addresses this issue.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

caching nocache
Bug description

With full-measure static caching enabled and ignore_query_strings set to true, a paginated collection inside a nocache region always renders page 1, even when visiting ?page=2.
The browser correctly passes the original URL, including ?page=2, to POST /!/nocache. However, the query string is removed before the pagination resolver reads the current page.

How to reproduce
  1. Create a collection named posts containing more than six published entries.
  2. Enable static caching:
    'strategy' => 'full',
    'ignore_query_strings' => true,
    'nocache' => 'cache',
  3. Add a paginated listing inside a nocache region, for example in Blade:
<statamic:nocache>
    <statamic:collection from="posts" paginate="true" limit="6" as="posts">
        @foreach ($posts as $post)
            <p>{{ $post['title'] }}</p>
        @endforeach

        <p>Page {{ $paginate['current_page'] }}</p>
    </statamic:collection>
</statamic:nocache>
  1. Clear the static cache and visit the page to populate it.
  2. Visit the same page with ?page=2.
  3. Wait for the nocache request to finish.

Expected behavior
The nocache region renders page 2, while the surrounding page continues using the same static cache entry.

Actual behavior
The nocache response contains page 1.

Logs

Environment
Environment
Laravel Version: 13.40.0
PHP Version: 8.4.23
Composer Version: 2.10.2
Environment: local
Debug Mode: ENABLED
Maintenance Mode: OFF
Timezone: UTC
Locale: en

Cache
Config: CACHED
Events: CACHED
Routes: CACHED
Views: CACHED

Drivers
Broadcasting: log
Cache: file
Database: mysql
Logs: stack / single
Mail: smtp
Queue: sync
Session: file

Storage
public/storage: NOT LINKED

Livewire
Livewire: v4.4.8

Statamic
Addons: 7
License Key: Not set
Sites: 1
Stache Watcher: Enabled
Static Caching: full
Version: 6.40.0 PRO

Statamic Addons
alt-design/alt-redirect: 1.9.0
aryehraber/statamic-captcha: 1.18.0
marcorieser/statamic-livewire: 5.3.4
Installation

Fresh statamic/statamic site via CLI

Additional details

No response

Vorherrschende Sprache
PHP
Sterne
4.9k
Forks
647
Ø Merge
23 Std. 42 Min.
Gemergte PRs (30 T.)
148

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus statamic/cms

Alle Issues in statamic/cms

Ähnliche Issues

Weitere Issues zu PHP

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.