|
| 您的位置: 首頁 > 網(wǎng)站資訊 > 淺析Discuz出現(xiàn)“內(nèi)部錯誤,無法顯示此內(nèi)容”的 |
淺析Discuz出現(xiàn)“內(nèi)部錯誤,無法顯示此內(nèi)容”的發(fā)布日期:2017/9/1
摘要: 前一段時間幫一個同伙修改用DZ程序做的網(wǎng)站的模板的時候出現(xiàn)了問題,就是網(wǎng)站倏忽出現(xiàn)內(nèi)部錯誤,無法顯示此內(nèi)容問題。大家都知道DZ是完全把主體程序和前端模板拆開的,這一點也
前一段時間幫一個同伙修改用DZ程序做的網(wǎng)站的模板的時候出現(xiàn)了問題,就是網(wǎng)站倏忽出現(xiàn)“內(nèi)部錯誤,無法顯示此內(nèi)容”問題。大家都知道DZ是完全把主體程序和前端模板拆開的,這一點也可以說是一套優(yōu)異程序的一個特征,這一點全球知名的開源程序WordPress也是如此。而DZ還有一個易用的功能就是模塊DIY功能,這個功能可以讓許多連HTML都不懂的站長同伙制作自己個性化的模塊。 然而出現(xiàn)這個問題基本上網(wǎng)站的一切都無法操作,在DIY點開諸如數(shù)據(jù)、樣式、屬性等所有選項都有報錯。而這時候我同伙有總在問我搞定了沒,因為許諾他在規(guī)定的時間里幫他解決首頁的模板,但碰到這個問題我都不敢跟他說,因為我也沒有的把握說這個東西不是我造成的,雖然在我看來操作前端的樣式的時候不可能造成這種錯誤,但在現(xiàn)實當(dāng)中一切意想不到的的事情都可能發(fā)生。 于是我只能硬著頭皮去自己搜索答案,在網(wǎng)上搜索了十多分鐘,發(fā)現(xiàn)大多數(shù)人提這樣的問題都沒有什么效果,回答就是更新緩存之類的,似乎這個程序出現(xiàn)所有問題都是沒有更新后臺緩存造成的,當(dāng)然DZ的許多時候都需要更新后臺緩存,特殊是修改了東西讓其生效的時候。 搜索了一圈也沒解決問題,雖然有許多答案得到了解決方案,但那些情況跟我的現(xiàn)實并不相符,因為我在出現(xiàn)故障前后只是操作了CSS,效果同伙倏忽說我?guī)湍阈薷牧薱onfig中的驗證IP功能免得你進(jìn)后臺的時候總是說跳出登陸。效果我讓他用備份的這個文件替代就解決問題。 我從來都不會為解決問題而去解決問題,我總會在自己解決后總結(jié)為什么會出現(xiàn)這個問題。于是我還特意保留了故障期間的那些文件跟現(xiàn)在正常的對比,分析了新的問題?偨Y(jié)網(wǎng)上和自己新琢磨出來的做一個總結(jié),造成這個問題因素有如下幾點,當(dāng)然以后可能有更多的新問題。 一、修改文件時直接用記事本打開,造成多余的空格,導(dǎo)致程序不能識別XML文件。 用過DZ那個程序的同伙都知道,在程序中許多地方都使用了XML技術(shù),我們插件和模板的安裝文件都是寫在XML文件中,然后經(jīng)過內(nèi)部函數(shù)機(jī)制調(diào)用執(zhí)行。還有在模板DIY過程中生成的文件其實也是XML的,比如我們在DIY后導(dǎo)出的文件就是這種格式的。我的這個同伙就是在修改配置文件config的時候直接在ftp中打開造成文件中出現(xiàn)多余空格,造成不能識別xml造成這種錯誤。因為我后來繼續(xù)恢復(fù)到異常狀況打開錯誤報告,發(fā)現(xiàn)上面有一截報錯代碼就是xml包含的,而下部分是我們正常使用的時候那部分,只是格式很紊亂。解決方案就是用DW之類專門編寫代碼的工具恢復(fù)那些文件正常的格式。 二、修改XML文件錯誤,導(dǎo)致無法識別。 在DZ中許多模板的首頁都是用DIY制作或者使用了大量的DIY,有時候我們修改模板上面的信息的時候為了省事就不是去一個個框架上編輯修改名稱了,而是先導(dǎo)出xml,然后再同一修改它。效果可能使用記事本或者其他不是專門編寫代碼的工具造成格式紊亂,也可能因為一時失誤把標(biāo)簽的封閉符號給刪除了。都會造成如種情況中所出現(xiàn)的那樣無法識別的問題,而且許多時候這樣的文件能順利導(dǎo)入程序,但導(dǎo)入后就會發(fā)生這樣致命的錯誤。解決的方法就是先清空錯誤的導(dǎo)入,然后經(jīng)過合適的工具及準(zhǔn)確的方法修改xml使得其沒有錯誤再導(dǎo)入。 三、在DIY狀況下導(dǎo)入了與程序自己沖突或者錯誤的JS。 在DZ內(nèi)部已經(jīng)自帶了許多特別很是實用的JS,比如幻燈片切換和滾動等等,這些只需要一個屬性值原本就可以直接調(diào)用,而且按照這種內(nèi)置功能實現(xiàn)的執(zhí)行效率會很高。但許多技術(shù)上不怎么了解的站長往往喜好從網(wǎng)上收集一些JS代碼,也許那些代碼在單獨(dú)執(zhí)行的時候確實沒有任何錯誤,但放在DZ程序中就會出現(xiàn)沖突甚至如這里說的這個致命的錯誤,比如知名的JS框架之一jQuery默認(rèn)的$就會與DZ沖突,必須經(jīng)過修改后才能正常使用。其實出現(xiàn)這類故障的時候,往往直接在前臺清空DIY都是無效的,解決方案就是去數(shù)據(jù)庫找到模板頁面數(shù)據(jù)的存檔表pre_common_diy_data DIY刪除加入進(jìn)去的數(shù)據(jù)記錄,然后重新來制作當(dāng)前頁面。 四、無解詭異的緩存問題。 這個問題假如說起來會讓人覺得廢話一樣,但我在此前確實就這么解決過好幾次出現(xiàn)這種錯誤的問題。其實我認(rèn)為并不新鮮,因為DZ是一套充分使用緩存機(jī)制的程序,比如我們的前端所看到的許多JS和CSS等都是先通過模板中的文件寫入Cache中,然后再讓前端讀取執(zhí)行的。許多時候經(jīng)過前面幾種體例修正了錯誤,但我們在前端查看的時候依然是錯誤的,這時候就得考慮緩存問題,而且這種問題多出現(xiàn)重新配置的服務(wù)器。解決的方法就是重啟IIS或者apache之類的web服務(wù)器或者干脆重新開機(jī),另外就是檢查Cache目錄是否寫入,因為我們的更改必須讓其在執(zhí)行的時候?qū)懭刖彺娌攀巧У摹?/p> 以上幾種情況是許多人都出現(xiàn)過的問題,也都是親身所經(jīng)歷的,只是種情況是我一次所碰到的。雖然一般來講只要是問題就有解決的方法,但我覺得有時候這樣的問題會造成我們虛耗大量不需要的時間。建議新手同伙不要在自己完全不了解相關(guān)知識的時候去隨意修改,也希望大家不要圖一時方便去直接修改文件以免造成難以發(fā)現(xiàn)原因的故障,當(dāng)然保險的體例照舊在修改前備份我們珍貴的數(shù)據(jù)。 |
| 其他相關(guān)文章 |
|
|
|
|
||||||||
| Copyright 2012-2025 上海蒙狼網(wǎng)絡(luò)科技有限公司 www.zetazs.com.cn All Rights Reserved |