您當前的位置:首頁 > 云計算 > IDC情報 > 建站程序系統

Discuz出現“內部錯誤,無法顯示此內容”的解決方案

中國穩速 2014-05-07 08:49:42

  前一段時間幫一個朋友修改用DZ程序做的網站的模板的時候出現了問題,就是網站突然出現“內部錯誤,無法顯示此內容”問題。大家都知道DZ是完全把主體程序和前端模板拆開的,這一點也可以說是一套優秀程序的一個特征,這一點全球知名的開源程序WordPress也是如此。而DZ還有一個易用的功能就是模塊DIY功能,這個功能可以讓很多連HTML都不懂的站長朋友制作自己個性化的模塊。

  然而出現這個問題基本上網站的一切都無法操作,在DIY點開諸如數據、樣式、屬性等所有選項都有報錯。而這時候我朋友有總在問我搞定了沒,因為答應他在規定的時間里幫他解決首頁的模板,但遇到這個問題我都不敢跟他說,因為我也沒有絕對的把握說這個東西不是我造成的,雖然在我看來操作前端的樣式的時候不可能造成這種錯誤,但在實際當中一切意想不到的的事情都可能發生。

  于是我只能硬著頭皮去自己搜索答案,在網上搜索了十多分鐘,發現大多數人提這樣的問題都沒有什么結果,回答最多的就是更新緩存之類的,似乎這個程序出現所有問題都是沒有更新后臺緩存造成的,當然DZ的很多時候都需要更新后臺緩存,特別是修改了東西讓其生效的時候。

  搜索了一圈也沒解決問題,雖然有很多答案得到了最終的解決方案,但那些情況跟我的實際并不相符,因為我在出現故障前后只是操作了CSS,結果朋友突然說我幫你修改了config中的驗證IP功能免得你進后臺的時候總是說跳出登陸。結果我讓他用備份的這個文件替換就解決問題。

  我從來都不會為解決問題而去解決問題,我總會在自己解決后總結為什么會出現這個問題。于是我還特意保留了故障期間的那些文件跟現在正常的對比,分析了新的問題。總結網上和自己新琢磨出來的做一個總結,造成這個問題最常見的因素有如下幾點,當然以后可能有更多的新問題。

  一、修改文件時直接用記事本打開,造成多余的空格,導致程序不能識別XML文件。

  用過DZ那個程序的朋友都知道,在程序中很多地方都使用了XML技術,我們插件和模板的安裝文件都是寫在XML文件中,然后經過內部函數機制調用執行。還有在模板DIY過程中生成的文件其實也是XML的,比如我們在DIY后導出的文件就是這種格式的。我的這個朋友就是在修改配置文件config的時候直接在ftp中打開造成文件中出現多余空格,造成不能識別xml造成這種錯誤。因為我后來繼續恢復到異常狀態打開錯誤報告,發現上面有一截報錯代碼就是xml包含的,而下部分是我們正常使用的時候那部分,只是格式很混亂。解決方案就是用DW之類專門編寫代碼的工具恢復那些文件正常的格式。

  二、修改XML文件錯誤,導致無法識別。

  在DZ中很多模板的首頁都是用DIY制作或者使用了大量的DIY,有時候我們修改模板上面的信息的時候為了省事就不是去一個個框架上編輯修改名稱了,而是先導出xml,然后再統一修改它。結果可能使用記事本或者其他不是專門編寫代碼的工具造成格式混亂,也可能因為一時失誤把標簽的封閉符號給刪除了。都會造成如第一種情況中所出現的那樣無法識別的問題,而且很多時候這樣的文件能順利導入程序,但導入后就會發生這樣致命的錯誤。解決的方法就是先清空錯誤的導入,然后經過合適的工具及正確的方法修改xml使得其沒有錯誤再導入。

  三、在DIY狀態下導入了與程序本身沖突或者錯誤的JS。

  在DZ內部已經自帶了很多非常實用的JS特效,比如幻燈片切換和滾動等等,這些特效只需要一個屬性值本來就可以直接調用,而且按照這種內置功能實現的特效執行效率會很高。但很多技術上不怎么了解的站長往往喜歡從網上收集一些JS代碼,也許那些代碼在單獨執行的時候確實沒有任何錯誤,但放在DZ程序中就會出現沖突甚至如這里說的這個致命的錯誤,比如知名的JS框架之一jQuery默認的$就會與DZ沖突,必須經過修改后才能正常使用。其實出現這類故障的時候,往往直接在前臺清空DIY都是無效的,最好的解決方案就是去數據庫找到模板頁面數據的存檔表pre_common_diy_data DIY刪除最近加入進去的數據記錄,然后重新來制作當前頁面。

  四、無解詭異的緩存問題。

  這個問題如果說起來會讓人覺得廢話一樣,但我在此前確實就這么解決過好幾次出現這種錯誤的問題。其實我認為并不奇怪,因為DZ是一套充分使用緩存機制的程序,比如我們的前端所看到的很多JS和CSS等都是先通過模板中的文件寫入Cache中,然后再讓前端讀取執行的。很多時候經過前面幾種方式修正了錯誤,但我們在前端查看的時候依然是錯誤的,這時候就得考慮緩存問題,而且這種問題多出現重新配置的服務器。解決的方法就是重啟IIS或者apache之類的web服務器或者干脆重新開機,另外就是檢查Cache目錄是否寫入,因為我們的更改必須讓其在執行的時候寫入緩存才是生效的。

  以上幾種情況是很多人都出現過的問題,也都是親身所經歷的,只是第一種情況是我最近一次所遇到的。雖然一般來講只要是問題就有解決的方法,但我覺得有時候這樣的問題會造成我們浪費大量不必要的時間。最后建議新手朋友不要在自己完全不了解相關知識的時候去隨意修改,也希望大家不要圖一時方便去直接修改文件以免造成難以發現原因的故障,當然最保險的方式還是在修改前備份我們寶貴的數據。

Contact lanisky

深圳市湛藍信息產業有限公司

地址:深圳市龍華區民治街道華僑新村
[email protected] / 0755-86501200

廉江市湛藍科技有限公司

廣東省廉江市良垌鎮平田濟村 / 0759-6905386

經營資質

營業執照  企業信用信息  粵ICP備15114633號
中央網信辦舉報中心  廣東省通管局  深圳舉報中心

首頁 | 湛藍公司 | 關于我們 | 官方新聞 | 資料中心 | 人力資源 | 聯系我們 | 網站條款 | 友情鏈接 | 會員中心

©2015- Lanisky All rights reserved.

lanisky                  更多>
亿客隆彩票