在使用CDN免备案或CDN四线加速后,论坛头像等图片无法显示并且在后台无法设置UCenter,仔细查看,原来是discuz在CDN后安装时在头像图片的链接地址上自动增加了CDN端口号,这样的地址自然无法打开。解决方法如下:
Discuz X2.5和Discuz X3.0的用户:打开文件source\class\discuz\discuz_application.php,查找第223行或如下代码
$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];
修改为:
//$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];
覆盖原文件后更新缓存即可解决。
Discuz X1.5用户,打开文件source/function/function_core.php,查找第1025行或如下代码:
$port = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];
修改成
//$port = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];
覆盖原文件后更新缓存即可解决。
Discuz X2用户,打开文件source/class/class_core.php,查找第359行或如下代码:
$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];
修改成
//$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];
覆盖原文件后更新缓存即可解决。
注意:如果是在CDN状态下新安装的Discuz论坛,那么还需要修改两处:
1,打开 /config/config_ucenter.php 文件,将define('UC_API', 'http://www.abc.com:2450/uc_server');改为define('UC_API', 'http://www.abc.com/uc_server');
或者登录discuz后台,把UCenter访问地址中:2450的字样去掉后点提交。
例如:把http://bbs.cnlvyo.com:2450/uc_server中的:2450去掉后得到http://bbs.cnlvyo.com/uc_server
2,登录UCenter后台,点上方导航的“UCenter”,再点左侧导航的“应用”,在“Discuz! Board” 行的最右侧点“编辑”,将“应用的主 URL:”网址中的:2450去掉,点“提交”。