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

迁移Yii2应用至新虚拟机后yii2fullcalendar无法正常渲染

问题:Yii2 fullcalendar组件迁移后渲染异常

环境对比

  • 原环境:GoDaddy CentOS VPS,Yii2 2.0.23,philippfrenzel/yii2fullcalendar 3.9.0,PHP 5.6(日历正常渲染)
  • 新环境:内部ESXi Ubuntu 22.04虚拟机,Yii2 2.0.47,同版本组件,PHP 5.6(渲染异常)
  • 验证环境:Ubuntu 14.04、MacOS Ventura(同组件版本+PHP 5.6,均正常渲染)

渲染效果对比

旧环境正常渲染:
旧环境正常渲染的日历

新环境渲染异常:
新环境渲染异常的日历

相关代码

视图代码

<?= \yii2fullcalendar\yii2fullcalendar::widget([
        'events' => $events,
        'id' => 'home-calendar',
        'clientOptions' => [
            'eventClick' => new JsExpression($js_event_click),
        ],
    ]);
?>

控制器代码

$homeEvents = HomeEvent::find()->all();
$events = [];
foreach ($homeEvents as $homeEvent) {
    $event = new Event([
        'id' => $homeEvent->id,
        'title' => $homeEvent->title,
        'allDay' => ($homeEvent->all_day == "T"),
        'start' => $homeEvent->start_dt,
        'end' => $homeEvent->end_dt,
        'editable' => true,
        'className' => ($homeEvent->all_day == 'T') ? 'fc-event-allday' : null,
    ]);
    $events[] = $event;
}
...
return $this->render('homepage', [
    'events' => $events,
...
]);

解决思路

  • 检查前端资源加载:打开浏览器开发者工具(F12),查看Console和Network标签,确认fullcalendar的CSS、JS文件是否加载成功,是否有404或加载报错。Ubuntu 22.04的Web服务(Apache/Nginx)配置可能存在静态文件权限问题,或Yii2的assetManager配置差异导致资源路径错误。
  • 排查Yii2版本差异:从2.0.23升级到2.0.47,assetManager的行为可能变化。检查新环境config/web.php中的assetManager配置,可临时开启forceCopy测试:
    'assetManager' => [
        'forceCopy' => true,
    ],
    
  • 验证日期格式一致性:打印控制器中$events的JSON输出,对比新旧环境的日期格式是否一致(如是否为ISO8601格式),时区配置差异也可能导致事件渲染异常。
  • 排查前端JS错误:简化clientOptions,先移除eventClick配置,看日历是否能正常渲染;同时检查Console中的JS报错,确认是否存在JsExpression解析或fullcalendar初始化问题。
  • 核对组件依赖:检查fullcalendar核心版本、jQuery版本在新旧环境是否一致,Yii2新版本可能引入了不同的jQuery版本,存在兼容性冲突。
  • 检查文件权限:确认新环境@webroot/assets目录权限正确,PHP进程拥有读写权限,保证Yii2能正常发布组件静态资源。

内容的提问来源于stack exchange,提问作者Papa Joe Dee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 05:27:45