在构建阶段未找到或生成缩小的资产
在Adobe Commerce Cloud中,由于文件系统问题或者 或 文件配置不正确,简化的资产在部署后返回.magento.env.yaml
404config.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.yaml
或config.php
文件的配置不正确。- 生成 上的 SCD要求将资源缩小设置保存到
app/etc/config.php
才能生效。 - SCD设置(请参阅环境变量)未配置或未添加到
.magento.env.yaml
文件的正确阶段下。
- 生成 上的 SCD要求将资源缩小设置保存到
解决方法 resolution
要解决此问题:
-
首先,检查受影响资源的文件权限,以确保Web服务器能够访问这些资源。
- 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支持,因为可能需要进一步调查服务器日志或其他配置设置。