最近帮一个客户定制网站,才用了DEDE的系统开发.不过在开发的后段出现<新闻页面生成HTML文件>时出现了"模板文件不存在,无法解析文档"的问题!dede模板
我仔细研究了一下:
1.模板文件是肯定存在的;
2.路径是对的;
3.其他的"列表页"是可以正常生成HTML文件的.
根据这3点,我肯定出现该问题肯定与路径无关系!再仔细研究了一下DEDE的这套系统,发现了一个很少被大家注意的一个问题:
很多朋友在开发网站的时候,做模板文件的时候喜欢使用".html"的格式,刚刚这个问题在DEDE的系统中可能在生成HTML文件的时候就会出现"模板文件不存在,无法解析文档"的问题!
所以解决方法就是把所有的模板文件的格式统一成".htm",这个问题就解决了!
说明:1.DEDE目前的模板文件对".HTML"格式的文件解析有点BUG(除了".HTML"和".HTM"格式的其他的在下还没有实验过);
2.目前的DEDE不是所有的栏目使用".HTML"格式的模板都会出现这种问题.
(一)对于"封面页"和"列表页"使用".HTML"格式的模板是可以的;
(二)对于"文档页"使用".HTML"格式是不行的,需要使用".HTM"或者其他格式(其他格式在下还没有测试过).
其实这个问题是非常的简单,根本没有一点技术性问题.只要我们熟悉DEDE的系统就根本不会出现这个问题,但是在开发过程中,很多朋友可能没有注意一些这些细节问题从而使我们无法向前.
今天被这个问题折腾了半天
第一步:检查栏目模版的设置是否正确
第二部:栏目模版是否存在或路径是否正确
第三部:通常已经两个问题都是很容易发现和处理,但是还是报错,因为织梦默认的模版后缀为.htm 而我习惯的后缀为.html 在通过模版引擎代码代码输入发现,模版文件没有输出。最后发现在
/include/arc.archives.class.php 556行
if (!preg_match("#.htm$#", $tmpfile) ) return FALSE;会至判断了.htm的后缀没有匹配.html后缀的文件 直接修改为.htm后默认模版的文件又无法解析只能两则兼顾了
if (!preg_match("#.htm$#", $tmpfile) && !preg_match("#.html$#", $tmpfile)) return FALSE;
改为这样就完全解决了
希望这个能够让大家节约不少的时间来研究这个问题,把这些时间浪费在去找技术方面的措施很不划算!同时希望高手能够指正和完善!