Magento 2执行setup:upgrade后CSS与JS静态资源无法加载问题
问题触发原因
- Magento 2默认模式下执行
setup:upgrade命令时,会自动清空pub/static目录下已生成的静态资源符号链接,默认不会自动重新生成对应静态资源。当浏览器请求CSS、JS等资源时,站点返回404错误页(MIME类型为text/html),与预期的样式/脚本MIME类型不符,就会触发该报错。 pub/static、var、generated目录读写权限不足,导致静态资源生成时无法写入对应目录。- Apache环境下
pub/static目录下的.htaccess文件缺失,静态资源请求被直接路由到站点前端入口,返回HTML格式内容。 - 静态资源签名配置
dev/static/sign异常,导致资源路径生成错误无法匹配到实际文件。
对应解决办法
首先修正目录权限,给与web运行用户对应目录的读写权限:
chmod -R 775 pub/static var generated
如果是Apache环境,需确认pub/static目录下存在原生的.htaccess文件,缺失可以从官方安装包的对应目录重新拷贝。手动强制部署静态资源,默认模式下可直接加
-f参数执行部署命令:
# 单语言站点 php bin/magento setup:static-content:deploy -f # 多语言站点需追加对应的语言编码,示例包含中文和英文 php bin/magento setup:static-content:deploy zh_Hans_CN en_US -f
- 部署完成后清理全部缓存:
php bin/magento cache:clean php bin/magento cache:flush
- 如果问题仍未解决,可临时关闭静态资源签名配置测试:
# 查看当前配置值 php bin/magento config:show dev/static/sign # 设置为0关闭签名 php bin/magento config:set dev/static/sign 0
配置修改后重新执行静态资源部署和缓存清理操作即可。
内容的提问来源于stack exchange,提问作者Priya
相关产品推荐
相关产品推荐

