浅析Discuz出现“内部错误,无法显示此内容”的解决方案

  前一段时间帮一个朋友修改用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目录是否写入,因为我们的更改必须让其在执行的时候写入缓存才是生效的。

  以上几种情况是很多人都出现过的问题,也都是亲身所经历的,只是第一种情况是我最近一次所遇到的。虽然一般来讲只要是问题就有解决的方法,但我觉得有时候这样的问题会造成我们浪费大量不必要的时间。最后建议新手朋友不要在自己完全不了解相关知识的时候去随意修改,也希望大家不要图一时方便去直接修改文件以免造成难以发现原因的故障,当然最保险的方式还是在修改前备份我们宝贵的数据。

  本文来源:http://www.zgwen.net (由西部数码代理中国稳速原创,转载请注明出处!)

时间: 2024-08-31 13:03:40

浅析Discuz出现“内部错误,无法显示此内容”的解决方案的相关文章

win2008 500内部错误不能显示详细错误解决办法

另外,对于win2008的IIS默认不显示详细出错信息的问题可以以下方法解决: 1.打开IIS,点全局设置中的"错误页"(注意必须是全局网站!) 2.点 右上角 的 编辑 功能设置. 2.在错误响应中,选第二项的"详细错误" 3.点确定后刷新IE就会显示详细的出错信息. 造成500错误常见原因有:ASP语法出错.ACCESS数据库连接语句出错.文件引用与包含路径出错.使用了服务器不支持的组件如FSO等.

500-IIS服务器内部错误解决方法

iis|错误|服务器|解决 最近机子的IIS始终不正常,总是说http500错误,无法解析asp文件,但可以显示静态HTML.去掉'显示友好的URL错误'后报错:Server Application ErrorThe server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more de

解决IIS5 HTTP500内部错误

iis|错误|解决|iis IIS5 HTTP500内部错误解决办法 一.错误表现 IIS5的HTTP 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现就是ASP程序不能浏览但HTM静态网页不受影响.另外当错误发生时,系统事件日志和安全事件日志都会有相应的记录. 具体如下: (一)IE中的表现 当浏览以前能够正常运行的asp页面时会出现如下的错误: 网页无法显示 您要访问的网页存在问题,因此无法显示. 请尝试下列操作: 打开 http://127.0.0.1 主页,寻找指向所需信息

IIS5 HTTP500内部错误解决办法

iis|错误|解决 iis5的http 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现就是asp程序不能浏览但htm静态网页不受影响.另外当错误发生时,系统事件日志和安全事件日志都会有相应的记录. 具体如下:(一)ie中的表现 当浏览以前能够正常运行的asp页面时会出现如下的错误: 网页无法显示 您要访问的网页存在问题,因此无法显示. 请尝试下列操作: 打开 http://127.0.0.1 主页,寻找指向所需信息的链接. 单击刷新按钮,或者以后重试. http 500 - 内部

IIS5 HTTP500内部错误解决办法(转自eNet)-------(三)

iis|错误|解决 三.解决办法 知道了导致HTTP 500内部错误的原因,解决起来就比较简单了,那就是人工同步IWAM账号在Active Directory.IIS metabase数据库和COM+应用程序中的密码. 具体操作分三步,均需要以管理员身份登录计算机以提供足够的操作权限(IWAM账号以IWAM_MYSERVER为例). (一)更改Active Directory中IWAM_MYSERVER账号的密码 因IWAM账号的密码由系统控制,随机产生,我们并不知道是什么,为完成下面两步的密码

Win7更换壁纸提示出现内部错误

  Win7更换壁纸提示出现内部错误解决 在Win7系统中更换桌面壁纸时出现错误,提示:无法将图片设为壁纸,出现内部错误.遇到这种问题我们该如何解决? 1.首先双击桌面"计算机"图标,在界面中点击"组织"-"文件夹和搜索选项". 2.然后在窗口中切换"查看"选项卡,在高级设置一栏去掉"隐藏受保护的操作系统文件"勾选,然后再选中"显示隐藏的文件.文件夹和驱动器"点击"确定&quo

win7更换壁纸内部错误的解决方法

  为了电脑有一个好的视觉效果,更换壁纸是一个好的方法.一般更换壁纸都是选取一张精美的图片,再直接设置为桌面,这样一个简单的操作.近日有网友反应win7更换壁纸时提示"无法将图片设为壁纸,出现内部错误".那么win7更换壁纸内部错误的解决方法,下面就来给你们介绍一下解决的方法. 其实解决的方法很简单,只有五个步骤. 第一步:打开一个文件夹,(如:我的电脑等),点击左上角的"组织". 第二步:选择"文件夹和搜索选项". 第三步:选择小窗口的查看选项

win7电脑更换桌面背景提示内部错误怎么办?

  很多朋友都喜欢不时的更换自己的电脑背景,因为这样可以让自己不容易产生视觉疲劳,也可以给自己带来一些新鲜感,当然,这样也可以让我们更好的去体验ghost win7 64位旗舰版下载的强大视觉效果.不过最近有使用ghost win7电脑的朋友来诉苦,说是不知道为什么,自己在更换电脑背景的时候会提示内部错误,即便是换个背景也会出现一样的错误,那么这个问题是怎么出现的呢?咱们要如何去解决呢? 1.首先,咱们返回到ghost win7电脑的桌面位置,然后在桌面找到计算机图标,咱们双击打开计算机,然后在

win8.1系统安装JDK 8u25 windows x64时出现内部错误

问题描述 出现内部错误提示窗口,点击确定后,jdk继续安装,可是这样好像jdk安装不完全.在设置完环境变量之后,输入java可以通过,显示应该正确,输入javac则提示ErroroccurredduringinitializationofVMjava/lang/NoClassDefFoundError:java/lang/Object不知道那个内部错误怎么解决?我的系统是win8.1企业版,64位. 解决方案 解决方案二:换个JDK试试,不要用太新版本的,用个稍微旧版本的稳定的解决方案三:我的也