Score:1

เป็นไปได้ไหมที่จะปิดใช้งาน twig cache สำหรับเทมเพลตที่กำหนดเองของธีมเดียว

ธง za

ฉันมีเทมเพลตที่กำหนดเองสำหรับแสดง URL ของ medialink จากฟิลด์อ้างอิงเอนทิตีสื่อย่อหน้า ในการผลิตโดยเปิดใช้งาน twig cache การแก้ไขไฟล์ที่แนบมากับสื่อ จะไม่อัปเดตเนื้อหาที่อ้างอิงถึงสื่อนั้น เว้นแต่ว่าแคชการแสดงผลจะว่างเปล่า

ย่อหน้า--link-media.html.twig

{% กำหนดคลาส = [
  'ย่อหน้า'
  'ย่อหน้าลิงค์สื่อ'
] %}
{% กำหนด link_classes = [] %}
{% ตั้ง aria_label = "" %}
{% ตั้ง aria_describedby = "" %}
{% ถ้า content.field_aria_title|field_value %}
  {% set aria_label = content.field_aria_title|field_value|render %}
{% เอนดิฟ %}
{% ถ้า content.field_link_description|field_value %}
  {% set aria_describedby = "link-description-"~paragraph.id() %}
{% เอนดิฟ %}
{% ถ้า content.field_link_style|field_value %}
  {% set link_classes = link_classes|merge(['cta-link']) %}
  {% ตั้งค่าคลาส = คลาส|ผสาน([content.field_link_style.0["#options"].entity.field_class_name.value]) %}
{% เอนดิฟ %}
{% ถ้า content.field_link_extra_styles|field_value %}
  {% สำหรับ extra_style ใน content.field_link_extra_styles|field_value %}
    {% ชุดคลาส = คลาส|ผสาน([extra_style["#options"].entity.field_class_name.value]) %}
  {% สิ้นสุดสำหรับ %}
{% เอนดิฟ %}
{% ถ้า content.field_link_fa_style|field_value %}
  {% ตั้งค่าคลาส = คลาส|ผสาน(['link-fa']) %}
{% เอนดิฟ %}
{% ย่อหน้าบล็อก %}
  {% บล็อกเนื้อหา %}
    {% ถ้า content.field_link_style|field_value %}
      {% ถ้า content.field_cta_align|field_value %}
        {% ตั้งค่า class_cta_align = content.field_cta_align|field_value %}
      {% อื่น %}
        {% ตั้ง class_cta_align = "cta-center" %}
      {% เอนดิฟ %}
      <div class="{{ class_cta_align }}">
    {% เอนดิฟ %}
    <span{{ attributes.addClass(คลาส) }}>
      {% กำหนดแอตทริบิวต์_ลิงก์ = create_attribute() %}
      {% ถ้า aria_label != "" และ content.field_link_description|field_value และไม่ใช่ content.field_link_style|field_value %}
        {% set attributes_link = attributes_link.setAttribute('aria-label', aria_label).setAttribute('aria-describedby', aria_describedby) %}
      {% elseif content.field_link_description|field_value และไม่ใช่ content.field_link_style|field_value %}
        {% set attributes_link = attributes_link.setAttribute('aria-describedby', aria_describedby) %}
      {% elseif aria_label !=" "" %}
        {% set attributes_link = attributes_link.setAttribute('aria-label',aria_label) %}
      {% เอนดิฟ %}

      {% ถ้า link_media.url|ความยาว>0 %}
        <a {{ attributes_link.addClass(link_classes) }} href="{{ link_media.url }}">
      {% เอนดิฟ %}
      {% ถ้า content.field_link_fa_style|field_value %}
        {{ content.field_link_fa_style.0["#options"].entity.field_fa_code.value|raw }}
      {% เอนดิฟ %}

ฉันจะแก้ไขได้อย่างไร

ดูเหมือนจะไม่แนะนำ auto_reload: true ในการผลิตและการกำหนดค่าเฉพาะสำหรับธีมดูเหมือนจะไม่สามารถทำได้ https://www.drupal.org/project/drupal/issues/2002606

sonfd avatar
in flag
คุณต้องตรวจสอบให้แน่ใจว่าการแสดงย่อหน้าของคุณมีแท็กแคชของสื่อ (และ/หรือของไฟล์สื่อ) เพื่อให้แคชการแสดงผลนั้นใช้ไม่ได้เมื่อมีการอัปเดตสื่อหรือไฟล์สื่อ
Matoeil avatar
za flag
@sonfd คุณจะทำอย่างไร
Score:5
ธง ru

ในเทมเพลตเอนทิตีใดๆ (เช่น node.html.twig หรือ ย่อหน้า.html.twig, แต่ไม่ field.html.twig), คุณ ต้อง เรนเดอร์ {{ เนื้อหา }} อย่างน้อยหนึ่งครั้ง มิฉะนั้นแท็กแคชจะไม่ฟองขึ้น ก {{ content.field_something }} ไม่พอ. คุณจะสังเกตเห็นปัญหานี้ทุกครั้งที่ต้องแสดงเอนทิตีที่ซ้อนกัน (เช่น เอนทิตีสื่อภายในย่อหน้าหรือโหนด)

หากการออกแบบของคุณไม่อนุญาตให้มีผ้าห่ม {{ เนื้อหา }}ทำสิ่งที่ชอบ {% ตั้ง dummy_force_cache_bubbling = เนื้อหา|แสดงผล %}. สิ่งนี้ไม่แสดงภาพใด ๆ แต่จะทริกเกอร์การประมวลผลแคช

Matoeil avatar
za flag
ฉันจะไม่พบมันหากไม่มีคุณ :)

โพสต์คำตอบ

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