热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

前一段时间帮一个朋友修改用DZ程序做的网站的模板的时候出现了问题,就是网站突然出现内部错误,无法显示此内容问题。大家都知道DZ是完全把主体程序和前端模板拆开的,这一点也

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

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


推荐阅读
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 在使用 MUI 框架进行应用开发时,开发者常常会遇到 mui.init() 和 mui.plusReady() 这两个方法。本文将详细解释它们的区别及其在不同开发环境下的应用。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文介绍了一段使用jQuery实现的用户注册页面表单验证代码,适用于前端开发人员学习和参考。该示例结合了HTML、CSS和JavaScript,确保用户输入的数据格式正确。 ... [详细]
  • 本文详细介绍超文本标记语言(HTML)的基本概念与语法结构。HTML是构建网页的核心语言,通过标记标签描述页面内容,帮助开发者创建结构化、语义化的Web页面。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 基于JQuery实现的评分插件
    本文介绍了一个使用JQuery创建的交互式评分控件。当用户将鼠标悬停在星星上时,左侧的星星会变为实心,右侧保持空心,并显示对应的评分等级;移开鼠标后,所有星星恢复为空心状态。 ... [详细]
  • 在PHP后端开发中遇到一个难题:通过第三方类文件发送短信功能返回的JSON字符串无法解析。本文将探讨可能的原因并提供解决方案。 ... [详细]
author-avatar
手机用户2502863351
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有