頂層導覽面板未載入店面

本文提供配置解決方案,解決Edge Side Include (ESI)問題,其中如果使用Varnish進行快取,則店面不會顯示某些頁面的內容(通常是頂端導覽面板)。

受影響的產品和版本

  • Adobe Commerce 2.X.X
  • 所有光澤處理版本

問題

必要條件

為您的Adobe Commerce商店安裝及設定清漆。

要再現的步驟

  1. 前往店面。
  2. 瀏覽商店頁面。

預期結果

所有內容和所有頁面區塊皆已成功載入。

實際結果

請注意,部分內容區塊(例如具有類別的頂端導覽面板)未載入。 改為顯示空白。

原因

此問題的可能原因如下:

  • ESI包含標籤是以HTTPS存取通訊協定產生,而Varnish只能搭配HTTP使用。
  • 清漆不會處理JSON內的ESI。
  • 回應標頭對於Varnish太大;它無法處理它們。

解決方案

若要解決問題,您需要執行額外的Varnish設定,並重新啟動Varnish。

  1. 以具有root許可權的使用者身分,在文字編輯器中開啟您的「消失」設定檔。 請參閱開發人員檔案中的修改Varnish系統組態,以取得不同作業系統之檔案可能所在位置的資訊。

  2. DAEMON_OPTS variable中,新增-p feature=+esi_ignore_https-p feature=+esi_ignore_other_elements-p feature=+esi_disable_xml_check。 如下所示:

    code language-bash
    DAEMON_OPTS="-a :6081 \    -p feature=+esi_ignore_other_elements \    -p feature=+esi_disable_xml_check \    -p feature=+esi_ignore_https \    -T localhost:6082 \    -f /etc/varnish/default.vcl \    -S /etc/varnish/secret \    -s malloc,256m"
    
  3. 儲存變更並退出文字編輯器。

  4. 在VCL組態檔中,增加下列引數的值以增加回應標頭: http_resp_hdr_lenhttp_resp_sizeworkspace_backend。 請確定最後兩個具有類似的值。

  5. 當您變更此專案時,必須執行service varnish restart才能讓變更生效。

相關閱讀

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a