改了 _extend.less,清缓存后页面一点变化都没有,先别继续改选择器。Magento 生产模式下访问的是 pub/static 里的编译结果,源文件改对了不代表当前 theme、locale 的 CSS 已重新生成。
在DevTools里反查实际CSS文件
选中元素,看命中的 CSS URL,例如:
/static/version123/frontend/Vendor/theme/zh_Hans/css/styles-l.css这里已经告诉了当前 area、theme 和 locale。部署时如果只生成了 en_US,中文 Store View 当然还在用旧文件或直接 404。
只清当前主题的生成结果再部署
先确认当前主题继承关系没有写错,然后执行:
rm -rf pub/static/frontend/Vendor/theme/zh_Hans
rm -rf var/view_preprocessed/pub/static/frontend/Vendor/theme
php bin/magento setup:static-content:deploy -f --area frontend --theme Vendor/theme zh_Hans
php bin/magento cache:clean full_page不要删除 pub/static/.htaccess。多节点部署时还要确认静态资源是共享存储,或者同一构建产物已经同步到每个节点;否则刷新几次时新旧样式会交替出现。
最后直接打开生成后的 styles-l.css 搜索刚改的规则,再回到页面确认响应命中的是这份文件。如果文件里都没有规则,问题在 LESS 编译或主题继承;文件里有但页面没用,才继续查 CDN、FPC 和选择器优先级。

