admin 发表于 2018-3-22 13:26:24

Discuz门户快照错乱的方法及图片绝对地址的方法

用了段时间Discuz门户系统,虽然功能强大,但是需要更改的大问题还是很多,这里讲一下比较严重的吧。
门户head尽管用了但是各搜索引型快照都是错乱的,如CSS、JS、图片都是死链!(主要是二级目录如:域名/*)
我自己研究了一个方法,不说最合适,但是基本可以解决问题。
首先查看网站源代码,看看哪些都出现了相对链接,把模板对应标签链接加上{$_G['siteurl']},其次对如缓存样式,这个代码没找到对应的文件修改,但是后台,全局,性能优化,服务器优化,CSS 文件 URL可以修改一下CSS样式文件的路径为自定义路径,路径的地址加上http://域名/,这样缓存部分就搞定了。
其次是文章内的图片链接,PHP和JS基础很差只能在模板内使用str_replace替换函数对对应变量进行字符匹配来解决此问题,

打开/source/module/portal/portal_view.php,
找到

$article['related'] = array();
if(($relateds = C::t('portal_article_related')->fetch_all_by_aid($aid))) {
      foreach(C::t('portal_article_title')->fetch_all(array_keys($relateds)) as $raid => $value) {
                $value['uri'] = fetch_article_url($value);
                $article['related'][$raid] = $value;
      }
}

在上面加上:   
      if(str_replace("src=\"你的网址/data/attachment/","src=\"你的网址/data/attachment/",$content['content'])<1){
    $content['content'] =str_replace("src=\"data/attachment/","src=\"你的网址/data/attachment/",$content['content']);
}


注意还有个方法是在后台设置附件路径给绝对地址就好了,但是此方法只对新生成图片有效,此方法直接将域名写入数据库中。

完成后更新缓存就OK了!

页: [1]
查看完整版本: Discuz门户快照错乱的方法及图片绝对地址的方法