在构建阶段未找到或生成缩小的资产

在Adobe Commerce Cloud中,由于文件系统问题或者​ ​文件配置不正确,简化的资产在部署后返回.magento.env.yaml404config.php错误。 若要解决此问题,请检查文件权限以确保Web服务器可访问它们,并验证是否已为您的环境正确配置.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。 出现此问题的原因是:

  • 导致文件无法跨所有Web节点同步的文件系统问题。

  • .magento.env.yamlconfig.php文件的配置不正确。

    • 生成 上的 SCD要求将资源缩小设置保存到app/etc/config.php才能生效。
    • SCD设置(请参阅环境变量)未配置或未添加到.magento.env.yaml文件的正确阶段下。

解决方法 resolution

要解决此问题:

  1. 首先,检查受影响资源的文件权限,以确保Web服务器能够访问这些资源。

    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