建置階段找不到或產生縮制的資產
在Adobe Commerce Cloud中,由於檔案系統問題或 或 檔案的設定不正確,極簡化資產在部署後傳回.magento.env.yaml
404config.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.yaml
或config.php
檔案的設定不正確。- 組建 上的 SCD要求將資產縮制設定儲存至
app/etc/config.php
才能生效。 - SCD設定(請參閱環境變數)未設定或新增到
.magento.env.yaml
檔案的正確階段下。
- 組建 上的 SCD要求將資產縮制設定儲存至
解決方法 resolution
若要解決問題:
-
首先,檢查受影響資產的檔案許可權,以確保網頁伺服器可存取這些資產。
- SSH至每個Web節點,並確認資產是否存在於所有Web節點。 (注意: 在非分割架構上,只有三個節點。 在分割架構中,前三個節點將是服務節點,但可能會有更多。) 針對節點X:
magento-cloud ssh -p <cluster_id> -I X
- 一旦您進入節點X,請執行此命令並檢查許可權:
ls -la pub/static/frontend/Namespace/theme/default/en_US/requirejs/require.min.js
(注意: 將命令中的檔案名稱取代為傳回404錯誤的實際資產名稱)。 - 如果檔案存在於某些節點上,但不存在於其他節點上,請提交支援請求,並將 連絡人原因 設定為 基礎結構事件。
- SSH至每個Web節點,並確認資產是否存在於所有Web節點。 (注意: 在非分割架構上,只有三個節點。 在分割架構中,前三個節點將是服務節點,但可能會有更多。) 針對節點X:
-
接著,如果檔案並非存在於所有節點上,請確認已針對您的環境正確設定
.magento.env.yaml
和app/etc/config.php
檔案。-
在任何Web節點上,先執行此命令:
vendor/bin/ece-tools wizard:scd-on-build
-
如果上述命令傳回 組建上的SCD已啟用,請執行此命令以驗證是否已啟用資產縮制設定:
grep -r minify_files app/etc/*.php
。 (注意: 將命令中的檔案名稱取代為傳回404錯誤的實際資產名稱)。 如果命令未傳回任何列,則表示已停用縮制。 值0
表示專案已停用,1
表示專案已啟用。 -
如果沒有傳回任何列:
- 執行
config:dump
命令,將縮制設定儲存至app/etc/config.php
(請參閱在組建上設定SCD)。 - 將其提交到存放庫。
- 重新部署執行個體。
- 執行
-
如果任何資產縮制設定的值為
0
,且應加以縮制:- 將
app/etc/config.php
中的值更新為1
。 - 將其提交到存放庫。
- 重新部署執行個體。
- 將
-
檢查
.magento.env.yaml
檔案,並確定您已將SCD 環境變數新增至適當的階段:
-
-
最後,在調整後測試對受影響URL的存取權。
如果執行這些步驟後問題仍然存在,請聯絡Adobe支援,以進一步調查伺服器記錄或可能需要其他組態設定。