建置階段找不到或產生縮制的資產

在Adobe Commerce Cloud中,由於檔案系統問題或​ ​檔案的設定不正確,極簡化資產在部署後傳回.magento.env.yaml404config.php錯誤。 若要修正此問題,請檢查檔案許可權,以確保網頁伺服器可存取這些檔案,並確認已針對您的環境正確設定.magento.env.yaml app/etc/config.php檔案。

說明 description

環境

Adobe Commerce Cloud

問題/症狀

完成網站部署後,無法存取某些縮制的資產,例如,https://yourdomain.com/static/frontend/Namespace/theme/default/en_US/requirejs/require.min.js ​會傳回​ 404。 原因如下:

  • 檔案無法跨所有網頁節點同步的檔案系統問題。

  • .magento.env.yamlconfig.php檔案的設定不正確。

    • 組建 上的 SCD要求將資產縮制設定儲存至app/etc/config.php才能生效。
    • SCD設定(請參閱環境變數)未設定或新增到.magento.env.yaml檔案的正確階段下。

解決方法 resolution

若要解決問題:

  1. 首先,檢查受影響資產的檔案許可權,以確保網頁伺服器可存取這些資產。

    1. SSH至每個Web節點,並確認資產是否存在於所有Web節點。 (注意 在非分割架構上,只有三個節點。 在分割架構中,前三個節點將是服務節點,但可能會有更多。) 針對節點X: magento-cloud ssh -p <cluster_id> -I X
    2. 一旦您進入節點X,請執行此命令並檢查許可權: ls -la pub/static/frontend/Namespace/theme/default/en_US/requirejs/require.min.js 注意 將命令中的檔案名稱取代為傳回404錯誤的實際資產名稱)。
    3. 如果檔案存在於某些節點上,但不存在於其他節點上,請提交支援請求,並將 連絡人原因 設定為​ 基礎結構事件
  2. 接著,如果檔案並非存在於所有節點上,請確認已針對您的環境正確設定.magento.env.yamlapp/etc/config.php檔案。

    1. 在任何Web節點上,先執行此命令: vendor/bin/ece-tools wizard:scd-on-build

    2. 如果上述命令傳回 組建上的SCD已啟用,請執行此命令以驗證是否已啟用資產縮制設定: grep -r minify_files app/etc/*.php。 (注意 將命令中的檔案名稱取代為傳回404錯誤的實際資產名稱)。 如果命令未傳回任何列,則表示已停用縮制。 值0表示專案已停用,1表示專案已啟用。

    3. 如果沒有傳回任何列:

      • 執行config:dump命令,將縮制設定儲存至app/etc/config.php (請參閱在組建上設定SCD)。
      • 將其提交到存放庫。
      • 重新部署執行個體。
    4. 如果任何資產縮制設定的值為0,且應加以縮制:

      • app/etc/config.php中的值更新為1
      • 將其提交到存放庫。
      • 重新部署執行個體。
    5. 檢查.magento.env.yaml檔案,並確定您已將SCD 環境變數新增至適當的階段:

      • 組建 SCD: 組建變數應放在build:階段下。
      • 部署上的 SCD: 部署變數應放在deploy:階段下。
      • 確認變數已新增至適當階段後,將檔案提交至存放庫並重新部署執行個體。
  3. 最後,在調整後測試對受影響URL的存取權。

如果執行這些步驟後問題仍然存在,請聯絡Adobe支援,以進一步調查伺服器記錄或可能需要其他組態設定。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f