縮小されたアセットがビルドフェーズで見つからないか、生成されません
Adobe Commerce Cloud では、ファイルシステムの問題や ファイルまたは ファイルの不適切な設定が原因で、縮小されたアセットがデプロイメント後に .magento.env.yaml404config.php エラーを返します。 この問題を修正するには、ファイルの権限をチェックして web サーバーからアクセスできることを確認し、ファイルと .magento.env.yaml ファイルが環境に対して正しく設定されていることを確認します app/etc/config.php
説明 description
環境
Adobe Commerce Cloud
問題/症状
Web サイトのデプロイメント完了後、特定の縮小されたアセットにアクセスできません(例:https://yourdomain.com/static/frontend/Namespace/theme/default/en_US/requirejs/require.min.js returns 404)。 これは、次の理由で発生します。
-
ファイルがすべての web ノードで同期されないファイルシステムの問題。
-
.magento.env.yamlまたはconfig.phpファイルの設定が正しくありません。- SCD on Build を有効にするには、アセットの縮小設定を
app/etc/config.phpに保存する必要があります。 - SCD 設定( 環境変数 を参照)が、
.magento.env.yamlファイルの正しいステージで設定または追加されません。
- SCD on Build を有効にするには、アセットの縮小設定を
解決策 resolution
この問題を解決するには:
-
まず、影響を受けるアセットのファイル権限を確認して、web サーバーからアクセスできるようにします。
- 各 web ノードに SSH で接続し、アセットがすべての web ノードに存在するかどうかを確認します。 (注意 : 分割されていないアーキテクチャでは、ノードは 3 つのみです。 分割アーキテクチャでは、最初の 3 つのノードはサービスノードですが、それ以外のノードが存在する場合もあります)。 ノード 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 エラーを返す実際のアセット名に置き換えます。 - ファイルが一部のノードにのみ存在し、他のノードには存在しない場合は、 連絡先理由 を インフラストラクチャインシデント に設定してサポートリクエストを送信します。
- 各 web ノードに SSH で接続し、アセットがすべての web ノードに存在するかどうかを確認します。 (注意 : 分割されていないアーキテクチャでは、ノードは 3 つのみです。 分割アーキテクチャでは、最初の 3 つのノードはサービスノードですが、それ以外のノードが存在する場合もあります)。 ノード X の場合:
-
次に、すべてのノードにファイルが存在しない場合は、
.magento.env.yamlファイルとapp/etc/config.phpファイルが現在の環境に対して正しく設定されていることを確認します。-
任意の web ノードで、最初に次のコマンドを実行します。
vendor/bin/ece-tools wizard:scd-on-build -
上記のコマンドで SCD on build is enabled が返された場合は、次のコマンドを実行して、アセットの縮小設定が有効になっていることを確認します:
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 環境変数 を追加していることを確認します。- ビルドの SCD: ビルド変数 は、
build:ステージの下に配置する必要があります。 - デプロイ時の SCD: Deploy 変数 は、
deploy:ステージの下に配置する必要があります。 - 適切なステージで変数が追加されたことを確認した後、ファイルをリポジトリにコミットし、インスタンスを再デプロイします。
- ビルドの SCD: ビルド変数 は、
-
-
最後に、調整を行った後、影響を受ける URL へのアクセスをテストします。
これらの手順を実行した後も問題が解決しない場合は、Adobe サポートにお問い合わせください。サーバーログや追加の設定についてさらに調査が必要になる場合があるた です。