wordpress 中用autoptimize之后,js总是出错,找了半天也不知是什么问题。最后在合并完的js中发现如下信息:
<!--Page not cached by WP Super Cache.No closing HTML tag.Check your theme.-->
正式这个注释导致js运行错误。
经查wp super cache的源文件,发现这个注释是由于打开了wp super cache debug开关,而且没有html的关闭标签,所以wp super cache输出了调试信息。把wp super cache debug开关关闭即可。
代码如下:
if (!preg_match('/(<\/html>|<\/rss>|<\/feed>|<\/urlset)/i',$buffer) ) {
$new_cache = false;
if( false === strpos( $_SERVER[ 'REQUEST_URI' ], 'robots.txt' ) ) {
if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) {
wp_cache_debug( "No closing html tag. Not caching.", 2 );
$buffer .= "\n<!-- Page not cached by WP Super Cache. No closing HTML tag. Check your theme. -->\n";
}
} else {
if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "robots.txt detected. Not caching.", 2 );
}
}