Score:1

มุมมองจะไม่อัปเดตเว้นแต่จะล้างแคช

ธง co

ในไซต์ Drupal 9 ฉันได้สร้างมุมมองที่แสดงเนื้อหาเฉพาะสำหรับแต่ละวันของเดือน (กรองตามฟิลด์วันที่)

มุมมองจะแสดงเนื้อหาที่ถูกต้องสำหรับผู้ใช้ที่เป็นผู้ดูแลระบบ แต่จะไม่แสดงสำหรับบุคคลอื่น เว้นแต่จะมีการล้างแคช

ฉันได้ลองปิดการแคชสำหรับมุมมองนั้น ปิดการแคชของมุมมอง และปิดการแคชทั้งหมดบนไซต์ แต่ไม่มีสิ่งใดสร้างความแตกต่างเลย

วิธีเดียวที่จะทำให้เนื้อหาอัปเดตได้อย่างถูกต้องคือการคลิกปุ่ม 'ล้างแคชทั้งหมด' ทุกวัน

สิ่งนี้ไม่สมเหตุสมผล (ฉันเคยสร้างมุมมองแบบนี้มาก่อนใน Drupal 7 และไม่มีปัญหาดังกล่าว)

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.

cn flag
คุณมีอะไรเช่นวานิช, Redis, CDN บางชนิด ฯลฯ หรือไม่? บางครั้งมีแคชอื่นอยู่ที่นั่น
in flag
นอกจากนี้ยังขึ้นอยู่กับการกำหนดค่าของมุมมองนี้ มุมมองนี้ดึงข้อมูลจากดัชนี Search API หรือไม่ มุมมองนี้แสดงผลในบริบทที่ไม่ระบุชื่อหรือไม่ ข้อมูลที่แสดงผลโดยมุมมองนั้นคำนวณจากบางสิ่งหรือใช้ตรรกะที่กำหนดเองเพื่อดึงข้อมูลหรือไม่ มีเทมเพลตกิ่งที่จัดการการแสดงผลข้อมูลมุมมองหรือตัวมุมมองหรือไม่
co flag
CDN เดียวที่ฉันทราบคือสำหรับ Webform ที่อื่นในไซต์ (แม้ว่าฉันจะไม่แน่ใจว่าใช้ CDN แต่ Drupal ทำให้เกิดข้อผิดพลาดมากมายเกี่ยวกับ CDN เว้นแต่คุณจะระงับ)
co flag
@Joseph มุมมองค่อนข้างพื้นฐาน ชื่อเรื่อง เนื้อหา วันที่ เนื้อหาใดๆ จะถูกเพิ่มล่วงหน้าและมุมมองจะแสดงหนึ่งรายการ (รายการเดียวสำหรับวันนั้น) โดยใช้ตัวกรองในฟิลด์วันที่ของ 'เท่ากับ' 'ตอนนี้' (ซึ่งใช้ได้กับ Drupal 7 เสมอ)
Score:2
ธง cn

@Patrick Kenny มีในตัวด้วย หากต้องการปิดใช้งานแคชนี้สำหรับผู้ใช้ที่ไม่ระบุตัวตนให้ถอนการติดตั้งโมดูล แคชเพจภายใน. จากนั้นการรับส่งข้อมูลทั้งหมดจะให้บริการโดย Dynamic Page Cache ซึ่งสามารถควบคุมได้โดยข้อมูลเมตาของแคชที่คุณกำหนดค่าใน View

อีกวิธีหนึ่งคือการทำให้แท็ก View cache ในงาน cron ใช้ไม่ได้Internal Page Cache มีข้อได้เปรียบเหนือแคชภายนอก เช่น Varnish หรือ CDN ที่คุณไม่จำเป็นต้องร้องขอ PURGE คุณสามารถทำให้แท็กแคชใช้ไม่ได้โดยตรง:

\Drupal\Core\Cache\Cache::invalidateTags(['config:views.view.my_view']);
sonfd avatar
in flag
คุณยังสามารถทำให้เป็นโมฆะได้ด้วย x) บริการ (สิ่งที่ `Cache::invalidateTags()` เรียกภายใน) เช่น: `\Drupal::service('cache_tags.invalidator') ->invalidateTags($tags);`
co flag
ฉันซาบซึ้งกับคำตอบเหล่านี้มาก แต่ดูเหมือนเป็นเรื่องทางเทคนิคและซับซ้อนอย่างเหลือเชื่อสำหรับบางสิ่งที่ควรจะเป็นฟังก์ชันพื้นฐาน (และเคยทำงานมาแล้วในอดีต เรียบง่ายมากกับ Drupal 7)
4uk4 avatar
cn flag
เพียงถอนการติดตั้งโมดูล ดูหน้าโมดูล: "เว็บไซต์ที่ให้บริการแก่ผู้ใช้ที่ไม่ระบุชื่อเนื้อหาไดนามิกจะต้องปิดการใช้งานโมดูล Internal Page Cache" อย่างไรก็ตาม กรณีของคุณไม่เปลี่ยนแปลง เปลี่ยนแปลงเพียงครั้งเดียวต่อวัน คุณจึงสามารถเลือกตัวเลือกที่สองและรักษาประสิทธิภาพที่เพิ่มขึ้นของโมดูลนี้ได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา