靜態內容部署策略

靜態內容部署(SCD)對存放區部署程式有重大影響,這取決於要產生多少內容(例如影像、指令碼、CSS、影片、主題、區域設定和網頁)以及何時產生內容。 例如,當網站處於維護模式時,預設策略會在部署階段期間產生靜態內容;然而,此部署策略需要一些時間才能將內容直接寫入掛接的pub/static目錄。 您有多種選項或策略可協助您根據需求改善部署時間。

最佳化JavaScript和HTML內容

您可以使用套件和縮制在靜態內容部署期間建置最佳化的JavaScript和HTML內容。

將內容縮制

如果您略過複製var/view_preprocessed目錄中的靜態檢視檔案,並在要求時產生​ 縮制的 HTML,則可以改善部署程式期間的SCD載入時間。 您可以在.magento.env.yaml檔案中將SKIP_HTML_MINIFICATION全域環境變數設定為true來啟動此專案。

NOTE
ece-tools封裝版本2002.0.13開始,SKIP_HTML_MINIFICATION變數的預設值設為true

您可以減少不必要的佈景主題檔案數目,以節省​ 更多 ​部署時間和磁碟空間。 例如,您可以部署英文版的magento/backend佈景主題,以及其他語言版的自訂佈景主題。 您可以使用SCD_MATRIX環境變數來設定這些主題設定。

選擇部署策略

部署策略會因您在​ 建置 ​階段、部署 ​階段或​ 隨選 ​階段期間選擇產生靜態內容而有所不同。 如下圖所示,在部署階段期間產生靜態內容是最不理想的選擇。 即使使用最小化HTML,每個內容檔案都必須複製到掛接的~/pub/static目錄,這可能需要很長的時間。 隨選產生靜態內容似乎是最佳選擇。 不過,如果內容檔案不存在於其產生之快取中,則會在請求該檔案時增加使用者體驗的載入時間。 因此,在建置階段期間產生靜態內容是最理想的作法。

SCD載入比較

在建置時設定SCD

在建置階段期間使用最小化HTML產生靜態內容是​零停機時間 ​部署的最佳設定,也稱為​ 理想狀態。 它不會將檔案複製到已掛載的磁碟機,而是從./init/pub/static目錄建立符號連結。

產生靜態內容需要存取主題和區域設定。 Adobe Commerce會將主題儲存在檔案系統中(可在建置階段存取),但Adobe Commerce會將地區設定儲存在資料庫中。 資料庫在建置階段中​ 無法使用。 為了在建置階段產生靜態內容,您必須使用ece-tools封裝中的config:dump命令,將地區設定移至檔案系統。 它會讀取地區設定並將它們儲存在app/etc/config.php檔案中。

若要將專案設定為在組建 ​上產生SCD:

  1. 在本機工作站上,變更至專案目錄。

  2. 使用SSH登入遠端環境。

    code language-bash
    magento-cloud ssh
    
  3. 將地區設定移至檔案系統,然後更新config.php檔案

  4. .magento.env.yaml組態檔應包含下列值:

  5. 驗證.magento.app.yaml檔案中Post-deploy鉤點的設定。

  6. 執行智慧型精靈以取得理想狀態來驗證您的設定。

    code language-bash
    php ./vendor/bin/ece-tools wizard:ideal-state
    

隨選設定SCD

針對整合環境中的開發工作流程,建議依需求產生SCD。 這可縮短部署時間,讓您快速檢閱實作並執行整合測試。 在.magento.env.yaml檔案的全域階段中啟用SCD_ON_DEMAND環境變數。 SCD_ON_DEMAND變數會覆寫與SCD相關的所有其他設定,並清除~/pub/static目錄中的現有內容。

使用SCD隨選策略時,有助於使用您預期請求的頁面(例如首頁)預先載入快取。 在.magento.env.yaml檔案的部署後階段的WARM_UP_PAGES環境變數中,新增您的預期頁面清單。

WARNING
請勿在生產環境中使用SCD隨選策略。

跳過SCD

有時您可以選擇完全略過產生靜態內容。 您可以在全域階段中設定SKIP_SCD環境變數,以忽略與SCD相關的其他設定。 這不會影響~/pub/static目錄中的現有內容。

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26