升级项目中用到了falang这个多语言组件,本来很顺利的,但当迁移到正式环境后发现页面所有的链接都为空白,点击都跳转到首页。经过单步调试,最后将问题定位在Falang这个组件上面。

现象

在本地windows环境下一切正常。迁移到服务器linux环境下后,所有的页面链接均为空白。

调试

开启调试模式后没有任何的提示信息。只能去到代码手动添加断点,最后定位为route_方法返回为空。进一步debug,发现是falangdriver插件引起的。将该插件关闭,系统链接正常。但由于系统维护多语言网站,必须启用这个插件。只得深入了解这个插件的实现代码。

主要的代码片段如下:

  $extensionName = str_replace('\\Joomla\\Component\\','',$namespace);
                        $className = 'Falang\\Component\\'.$extensionName.'\\Site\\Service\\FalangRouter';
                        $router_file_path  = JPATH_PLUGINS . '/system/falangdriver/routers/com_' . strtolower($extensionName) . '/router.php';
                        if (file_exists($router_file_path)){
                            require_once $router_file_path;
                        }
                        if (!class_exists($className))
                        {
                         
                            throw new \RuntimeException('No router available for this application.');
                        }

 发现是Route.php文件不存在,服务器上的文件名是route.php.

解决的方案,将Route改为route问题解决。

后续处理

已经发邮件给Fa lang开发团队。

 

作者: 樱木花道

Joomla程序员,从J1.5到J4.x始终都在做Joomla相关开发定制工作,有超过10年行业经验,国内Joomla扩展开发商ZMAX团队的核心成员

作者网站:ZMAX程序人

评论 (0)

  • 最新在前
  • 最佳在前