不少人都在使用織夢cms系統(tǒng),對于pc端還好,圖片使用相對路徑都可以打開,可是一旦開通的移動端,圖片就成了死鏈接了,如此怎么樣解決呢,其實(shí)方法很多,下面我們就來介紹下簡單的方法吧!
很多朋友使用dedecms的時候都用了二級域名的功能,所以造成很多文章中圖片不顯示的問題。在百度后得到一個方法就是進(jìn)入dede后臺“系統(tǒng)”-“系統(tǒng)基本參數(shù)”-“核心設(shè)置”,開啟支持多站點(diǎn),結(jié)果也不管用。
相關(guān)閱讀:http://m.cuoXin.com/cms/201817606.html
終極 解決方法
找到 include/dialog/select_images_post.php 第108行
$fileurl = $activepath.’/’.$filename;
換成:
$fileurl = ‘你的域名’.$activepath.’/’.$filename;
這樣就可以完美實(shí)現(xiàn)dedecms上傳圖片相對路徑改成絕對路了。
dedecms升級到5.7SP1后,開啟二級域名,你會發(fā)現(xiàn),在二級域名下的文章,上傳的圖片地址都是:二級域名+圖片地址,這是相對路徑。但是你的圖片是默認(rèn)上傳在uploads里面的。應(yīng)該使用絕對路徑。這就出現(xiàn)圖片路徑錯誤,導(dǎo)致圖片不顯示。那怎么修改這種情況呢?我在網(wǎng)上看了好多方法,但是大部分最終是不可用的。在這里,將兩種有效的方法分享給大家。這兩種方法都是在你開啟“多站點(diǎn)支持”、“綁定完二級域名”的前提下。
第一種:批量修改域名下所有文章內(nèi)的圖片路徑。
1、進(jìn)后臺-核心-批量維護(hù)-數(shù)據(jù)庫內(nèi)容替換
2、選擇表 dede_addonarticle
3、字段 body
4、被替換內(nèi)容: src="/uploads/
5、替換為:src="http://你的域名/uploads/
6、點(diǎn)擊“開始替換”
提示完成后就代表替換完成。 生成一下文章,你就發(fā)現(xiàn)前臺顯示正常了。
這種方法對于網(wǎng)站不大經(jīng)常更新的站長比較適合,如果你每天都會更新網(wǎng)站文章,這個方法就會太繁瑣了!下面介紹第二種方法。徹底解決這個問題。
第二種:修改程序文件,增加一個參數(shù)。
1、找到include下的文件extend.func.php
2、在文件最后增加一個參數(shù)。(php函數(shù)的結(jié)束括號外)
function replaceurl($newurl)
{
$newurl=str_replace('src="/uploads/allimg/','src="http://你的域名/uploads/allimg/',$newurl);
return $newurl;
}
3、將文章正文的調(diào)用標(biāo)簽 {dede:field.body/}修改成 {dede:field.body function='replaceurl(@me)'/}
4、傳到服務(wù)器,在測試一下就會發(fā)現(xiàn),問題解決!
織夢縮略圖:
在插入數(shù)據(jù)庫和修改數(shù)據(jù)庫的時候(添加和編輯),只需判斷當(dāng)前縮略圖是否包含域名這個字符串,如果包含了就不做操作,沒包含就加一個絕對路徑,就解決了.也就是這里只需要改一個地方,就是操作數(shù)據(jù)庫前處理下就好了.我用的是這種.
下面是詳細(xì)代碼:
大家打開織夢的后臺路徑默認(rèn)是dede/article_add.php和 dede/article_edit.php
兩個文件一個是添加的時候,一個是編輯的時候
搜索if(preg_match("#j#", $flag)) $ismake = -1; 這句代碼
在這句代碼的上面加入以下代碼:
if($litpic!='' && !checkstr($litpic,$cfg_basehost)){
$litpic=$cfg_basehost.$litpic;
}
然后隨便在include的一個php文件里面加入以下代碼:
function checkstr($str,$str1){
//判斷是否包含$str1這個字符
$tmparray = explode($str1,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
就解決了,這個判斷的意思就是如果縮略圖不為空的話,并且縮略圖url不包含域名的話,就給他加一個域名,這樣就解決了.
昨天那篇教程只寫了關(guān)于縮略圖的,因?yàn)楫?dāng)時客戶沒和我說織夢內(nèi)容頁里面也需要轉(zhuǎn)為帶域名的絕對路徑.
所以今天早上就把后面的代碼寫完了.我直接寫代碼吧.
打開include/dialog/select_images_post.php這個文件,然后在108行
$fileurl = $activepath.'/'.$filename;
改為
$fileurl = $cfg_basehost.$activepath.'/'.$filename;
這里的意思就是編輯器上傳的時候,帶上域名這樣的絕對路徑.
然后打開/dede/inc/inc_archives_functions.php
找到436行的樣子
global $cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
改為
global $cfg_basehost,$cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
找到481行的樣子
if($isremote==1 && preg_match("#^http:////#i", $picname))
改成
if(($isremote==1 && preg_match("#^http:////#i", $picname)) && !checkstr($picname,$cfg_basehost))
找到502行的樣子
if(($litpic=='ddfirst' && !preg_match("#^http:////#i", $picname))
改為
if(($litpic=='ddfirst' && !preg_match("#^http:////#i", $picname)) || ($litpic=='ddfirst' && checkstr($picname,$cfg_basehost)))
找到503行的樣子
$oldpic = $cfg_basedir.$picname;在這句代碼的上面加一句 $picname = str_replace($cfg_basehost,'',$picname);
然后可以把滾動條拉到最下面 加入以下函數(shù):
function checkstr($str,$str1){
//判斷是否包含$str1這個字符
$tmparray = explode($str1,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
那么基本就搞定了
具體什么意思我就不說了,看的懂的看代碼就懂了,看不懂的說了也沒用.
織夢CMS縮略圖和文章內(nèi)容圖片自動轉(zhuǎn)化為帶域名的絕對路徑 這個教程也就講完了,希望可以幫助到大家
新聞熱點(diǎn)
疑難解答
圖片精選