คำถาม 'ผู้ใช้ใหม่' Quick CloudFlare สำหรับคุณ:
ความเป็นมา: หน้า HTML ที่เสริฟโดยเซิร์ฟเวอร์ต้นทางของฉันไม่เคยเปลี่ยนแปลง เนื้อหาแบบไดนามิกทั้งหมดจะถูกดาวน์โหลดผ่าน JavaScript หลังจากโหลดหน้าเว็บในเบราว์เซอร์ของผู้ใช้ เนื้อหาแบบไดนามิกที่ได้รับจาก JavaScript ขึ้นอยู่กับส่วนของสตริงการสืบค้นของ URL แต่สตริงการสืบค้นนั้นไม่มีผลกับเนื้อหา HTML ที่ดาวน์โหลดมาในตอนแรก URL ต่อไปนี้จึงสร้างทั้งหมดว่า HTML ที่เดียวกันจากแหล่งกำเนิดก่อนที่จะถูกดำเนินการโดย JavaScript ในเบราว์เซอร์:
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
คำถาม: ระบุว่า CloudFlare ไม่แคช HTML โดยค่าเริ่มต้นวิธีการที่ฉันจะต้องสร้างกฎหน้าของฉันเพื่อให้สำเนาแคชเดียวของhttps://www.example.com/private/my-investments?[anyValue]จะถูกส่งกลับไปยังผู้ใช้ทุกคน ? นี่คือสิ่งที่ฉันได้ลอง:
"แคชทุกอย่าง:" การใช้คำสั่ง 'ทุกอย่างแคช' ทำให้ HTML ของฉันถูกแคช (ดี) แต่ใช้สตริงข้อความค้นหาทั้งหมดเป็นส่วนหนึ่งของคีย์แคช (ไม่ดี) ดังนั้นหากผู้ใช้เข้าชม URL ต่อไปนี้ ...
https://www.example.com/private/my-investments?portfolioID=296
... และหลังจากนั้นสิบวินาทีก็จะพบ URL เดียวกันด้วยสตริงการสืบค้นที่แตกต่างกันเช่น:
https://www.example.com/private/my-investments?portfolioID=325
... CloudFlare ปฏิบัติต่อคำขอหลังนั้นว่าเป็นแคช MISS (cf-cache-status: MISS) และเข้าสู่เซิร์ฟเวอร์ต้นทางของฉันอีกครั้ง แม้ว่าข้อเท็จจริงที่ว่า HTML ที่ส่งคืนมาจากต้นกำเนิดนั้นเหมือนกันสำหรับทั้งสอง URL
"IGNORE QUERY STRING CACHING:" ฉันคิดว่าแน่นอนว่าฉันจะแก้ไขปัญหานี้ได้โดยเลือกตัวเลือก "IGNORE QUING STRING CACHING" แต่เมื่อใช้ตัวเลือกนี้ใน Page Rule จะไม่มีการแคช HTML เลย เฉพาะไฟล์. js, .css และ. png และที่มาของฉันอีกครั้งได้รับผลกระทบทุกครั้งที่มีการเรียกข้อมูล HTML :(
ฉันรู้สึกเหมือนฉันต้องคิดถึงบางสิ่งที่ชัดเจน ความคิดใด ๆ
UPDATE : มีความคิดที่ฉันต้องการที่จะดำเนินการโดยคุณ ฉันสามารถแก้ไขปัญหานี้ได้โดยเปลี่ยนรูปแบบ URL ภายในของฉันเพื่อใช้ '#' แทน '?' ดังนั้นแทนที่จะเป็น URL เช่น ...
https://www.example.com/private/my-investments?portfolioID=296
.. ฉันจะใช้สิ่งที่ชอบ:
https://www.example.com/private/my-investments#portfolioID=296
สิ่งนี้จะป้องกันไม่ให้พารามิเตอร์สตริงข้อความค้นหาถูกส่งไปยัง CloudFlare เลย ... คุณคิดอย่างไร
เฟสตัส