dede后台文档生成不了html什么原因
1、DEDE后台“更新所有”、“更新栏目”、“更新文档”没反应或无法生成,如下图。
3、查找templets/中的文件里面其中含{dede:fieldname='typeid'function="GetTopTypename(@me)" /} 或含有“GetTopTypename(@me)”的字段将整句删除,并保存。
4、恢复正常生成更新。
版本:DEDE所有版本,DEDE_v5,V53,V55
原因:要创建的目录或者文件没有写入权限
解决办法:
第一步,定位出错的文件,即查找生成什么文件时出的问题。
方法:修改 include/dedetagclassphp文件,搜索"DedeTag Engine Create File False",会找到以下代码
$fp = @fopen($filename,"w") or die("DedeTag Engine Create File False");
修改成
$fp = @fopen($filename,"w") or die("DedeTag Engine Create File False:$filename");
重新生成栏目或者文档时,即可提示当前文件信息。
第二步,找到提示错误的目录或者文件,检查是否有写入权限,windows服务器请给予写入权限,linux服务器请给予777权限。如果目录或者文件不存在,请手工建立。
常见的错误情况有,data目录没有写入权限,html静态文件目录没有写入权限,indexhtml首页静态文件没有写入权限。
警告:此修改操作可能会暴露程序目录结构信息,建议解决问题以后,还原程序文件。
存在这样的原因主要有:栏目的内容页模板不存在线下;
解决方法:
1、进入属于这个文章的栏目,点击更改,查看高级选项,看看文章模板文件是多少;
2、然后在风格文件里看看有没有这个文件,如果没有就生成不了的;
3’如果没有就添加下,再进行生成!
利用模板。目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smarttemplate等。它们每一种模板,都有一个获取输出内容的函数。我们生成静态页面的方法,就是利用了这个函数。用这个方法的优点是,代码比较清晰,可读性好。
这里我用smarty做例子,说明如何生成静态页:
<php
require("smarty/Smartyclassphp");
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/indexhtm");
//这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
$fp = fopen("archives/2005/05/19/0001html", "w");
fwrite($fp, $content);
fclose($fp);
>
检查你的文件编码。还有你的标签的书写。php标签 需要后台开启才可以使用的。
页面的编码、文件的存储的编码、dedecms程序的编码要统一。
编码不能解析的原因,大部分是标签书写错误的原因。建议到dede默认的模板里直接复制。
0条评论