本帖最后由 hbfly 于 2013-7-19 23:17 编辑
发现有几个人都提过这个问题,官方居然一直没重视。
具体症状是 如果后台设置: 性能优化》论坛页面缓存设置 》首页缓存打开(设置为900)。
那么在 游客(未登录)情况下 首页 body 和HTML 标签没有结束
以下链接有人遇到同样问题,看来是Discuz官方的BUG。
https://discuz.dismall.com/thread-3290993-1-1.html而且2012年就有人提出来,官方还当时说会解决 https://discuz.dismall.com/thread-3165083-1-1.html。
看样子一直没打算解决。
而且更严重的其实是模板里面<!--{eval output();}--> 之后的代码都没有了。
经检查可能是 forum_index.php 里面的 get_index_page_guest_cache() 这个有问题。
目前用了比较蠢 的办法,就是把<!--{eval output();}-->放到模板结尾处</body></html>标签之前,然后在get_index_page_guest_cache里面把结尾补上,如下:- echo "<script type="text/javascript">
- if($('debuginfo')) {
- $('debuginfo').innerHTML = '. This page is cached at $updatetime $gzip .';
- }
- </script></body></html>";
复制代码 不过 我发现 百度的首页body也没有结束,难道这个做法是潮流?
知乎也有人讨论这个:http://www.zhihu.com/question/19617126
--------------------------------
继续研究发现:
HTML规范(即doctype声明为html4.01 strict或html5)中,有部分标签是可以不用闭合的: <html>
<body>
<colgroup>
<thead>
<tr>
<tbody>
<td>
<p>
<dt>
<dd>
<li>
<option>
<tfoot> https://developers.google.com/speed/articles/optimizing-html?hl=zh-CN 谷歌官方的文档也说不闭合是允许的,而且据说可以优化网站速度,不知道是不是真的。 --------------------------------------
discuz官方到底是没发现这个BUG还是有意为之?如果有意为之,为何<!--{eval output();}-->之后的代码都没了。
|