Puncte:0

Partea din mijloc a unei pagini dispare și apare din nou după ce ștergeți toate cache-urile

drapel cn

Uneori, partea din mijloc a unei pagini de pe site-ul nostru poate dispărea și doar antetul și subsolul sunt încă afișate.Problema este întotdeauna rezolvată după spălarea tuturor cache-urilor.

Al nostru html.html.twig încarcă șabloanele într-un fel ca

{% include „@themename/header.html.twig” %}
{{ pagina }}
{% include „@themename/footer.html.twig” %}

Și al nostru page.html.creugă încarcă un șablon adecvat în funcție de calea paginii, cum ar fi

{% set cale = cale('<curent>') %}
{% set pagePath = cale|redare|redare %}
{% if pagePath == '/node' %} {# dacă pagina de pornire #}
{% include „@themename/homepage.html.twig” %}
{% altfel %}
{% include „@themename/innerpage.html.twig” %}
{% endif %}

Nu suntem bine familiarizați cu memorarea în cache Drupal, așa că nu știm exact cum este legată problema de stocarea în cache. Poate că are legătură cumva cu redarea cache-ului? Așa cum folosim cale|redare|redare în a noastră page.html.creugă. Sau poate are legătură cumva cu index.php care apare uneori în bara de adrese?

sonfd avatar
drapel in
Există deja un șablon / sugestie `page--front.html.twig` pe care o puteți folosi pentru a viza numai prima pagină (indiferent de ce este setat în pagina de configurare Setări de bază ale site-ului). Folosește-o în schimb.
Puncte:1
drapel cn

Șablonul de pagină afișează sub Variabile utilitare generale este_față variabil:

{% if is_front %}
  {% include „@themename/homepage.html.twig” %}
{% altfel %}
  {% include „@themename/innerpage.html.twig” %}        
{% endif %}

Acest lucru ar trebui să rezolve problema, chiar dacă vizitați pagina cu adrese URL diferite. Poți evita și asta, Modul de redirecționare redirecționează diferite căi ale unei pagini către una canonică. Atunci condiția bazată pe cale va fi previzibilă, așa că aceasta ar fi o a doua modalitate de a rezolva problema.

drapel cn
Dacă încerc `{% if is_front %}`, primesc eroarea `Twig\Error\SyntaxError: eticheta "is_front" necunoscută. în Twig\Parser->subparse()`
drapel cn
Am adăugat linia `$vars['is_front'] = \Drupal::service('path.matcher')->isFrontPage();` la funcția mea `themename_preprocess_page()` și acum funcționează
4uk4 avatar
drapel cn
Ciudat, această variabilă este deja în miez. Vedeți [template_preprocess_page](https://api.drupal.org/api/drupal/core%21includes%21theme.inc/function/template_preprocess_page)
drapel cn
Te referi la versiunea 9.x? Folosim 8.x, tocmai l-am specificat ca etichetă a întrebării, îmi pare rău
4uk4 avatar
drapel cn
Același lucru pentru 8.x. Consultați https://api.drupal.org/api/drupal/core%21includes%21theme.inc/function/template_preprocess_page/8.9.x

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.