You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCart 3.0.4.0搭配PHP8.0出现SCSS编译错误,无法访问后台

OpenCart 3.0.4.0 + PHP 8.0 SASS编译错误解决

问题原因

  • OpenCart 3.0.4.0默认集成的ScssPhp版本较低,该版本的ScssPhp\ScssPhp\Compiler类没有compileString()方法——这个方法是ScssPhp 1.4.0及以上版本才新增的。刷新SASS缓存时触发了对该方法的调用,导致致命错误。
  • 可能是主题修改、第三方扩展替换了ScssPhp文件,或者缓存生成的代码错误引用了新版本方法。

解决方法

方法1:修复SASS控制器代码

直接修改报错文件的方法调用,适配旧版ScssPhp:

  1. 打开/Users/seb/Projects/shop/admin/controller/startup/sass.php
  2. 定位到第17行,将compileString()替换为旧版支持的compile():
// 替换前
$css = $compiler->compileString($scss)->getCss();
// 替换后
$css = $compiler->compile($scss);
  1. 保存文件后,尝试重新访问管理后台。

方法2:更新ScssPhp到兼容版本

升级ScssPhp到同时支持PHP 8.0和OpenCart 3.0.4.0的版本:

  1. 下载ScssPhp 1.12.x ~ 1.15.x版本(该区间版本兼容PHP 8.0且适配OpenCart 3.x)
  2. 备份原system/library/scssphp目录,然后将下载的ScssPhp文件替换到该目录
  3. 删除system/storage/cache/下的所有缓存文件(保留.htaccess文件)
  4. 重启PHP服务后访问后台。

方法3:临时禁用SASS编译(快速恢复后台)

若需紧急恢复后台访问,可临时关闭SASS自动编译:

  1. 打开system/storage/modification/system/engine/router.php(未启用OCMod则打开system/engine/router.php)
  2. 找到调用ControllerStartupSass的代码段,注释或删除该行
  3. 清除缓存后即可访问后台,后续再处理SASS编译问题。

内容的提问来源于stack exchange,提问作者Seb Rose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 17:55:57