Schnelle CloudFlare-Frage "Neuer Benutzer" für Sie:
HINTERGRUND: Die von meinem Ursprungsserver bereitgestellten HTML-Seiten ändern sich nie. Alle dynamischen Inhalte werden über JavaScript heruntergeladen, nachdem die Seite in den Browser des Benutzers geladen wurde. Der vom JavaScript abgeleitete dynamische Inhalt hängt teilweise von der Abfragezeichenfolge der URL ab, aber die Abfragezeichenfolge selbst hat keinen Einfluss auf den ursprünglich heruntergeladenen HTML-Inhalt. Die folgenden URLs generieren daher alle genau den gleichen HTML-Code aus dem Ursprung, bevor JavaScript im Browser darauf reagiert:
https://www.example.com/private/my-investments?portfolioID=296
https://www.example.com/private/my-investments?portfolioID=325
https://www.example.com/private/my-investments?portfolioID=319
FRAGE: Da CloudFlare HTML standardmäßig nicht zwischenspeichert, wie soll ich meine Seitenregeln so erstellen, dass eine einzelne zwischengespeicherte Kopie von https://www.example.com/private/my-investments?[anyValue] an alle Benutzer zurückgegeben wird ? Folgendes habe ich versucht:
"ALLES CACHEN:" Wenn Sie die Direktive 'Cache Everything' verwenden, wird mein HTML-Code zwischengespeichert (gut), es wird jedoch die gesamte Abfragezeichenfolge als Teil des Cache-Schlüssels verwendet (schlecht). Wenn also ein Benutzer die folgende URL trifft ...
https://www.example.com/private/my-investments?portfolioID=296
... und dann zehn Sekunden später dieselbe URL mit einer anderen Abfragezeichenfolge wie folgt aufrufen:
https://www.example.com/private/my-investments?portfolioID=325
... CloudFlare behandelt diese letztere Anforderung als Cache-MISS (cf-Cache-Status: MISS) und trifft meinen Ursprungsserver erneut. Dies trotz der Tatsache, dass der vom Ursprung zurückgegebene HTML-Code für beide URLs identisch ist.
"IGNORE QUERY STRING CACHING:" Ich war mir sicher, dass ich dieses Problem beheben würde, indem ich die Option "IGNORE QUERY STRING CACHING" auswähle. Bei Verwendung dieser Option in einer Seitenregel wird jedoch überhaupt kein HTML zwischengespeichert. Es werden nur .js-, .css- und .png-Dateien zwischengespeichert. Und wieder wird mein Ursprung bei jedem einzelnen Aufruf von HTML-Daten getroffen. :(
Ich habe das Gefühl, dass mir etwas Offensichtliches fehlen muss. Irgendwelche Gedanken?
UPDATE : Hatte eine Idee, die ich von dir leiten möchte. Könnte ich dieses Problem lösen, indem ich mein internes URL-Schema so ändere, dass '#' anstelle von 'verwendet wird?' Also anstelle einer URL wie ...
https://www.example.com/private/my-investments?portfolioID=296
..Ich würde so etwas verwenden wie:
https://www.example.com/private/my-investments#portfolioID=296
Dies würde verhindern, dass die Parameter der Abfragezeichenfolge überhaupt an CloudFlare übertragen werden ... Was denken Sie?
Festus