在我们的一个Wordpress应用程序上,我们有Cloudflare,从一个月前开始,我们注意到一个问题,我们的javascript没有加载。网址是: https://somedomain.com/wp-admin/load-scripts.php?c=0&load%5B%5D=hoverIntent,common,admin-bar,heartbeat,autosave,wp-ajax-response,jquery-color,wp-lists,jquery-query,admin-comments,suggest,jquer&load%5B%5D=y-ui-mouse,jquery-ui-sortable,postbox,tags-suggest,tags-box,word-count,post,editor-expand,thickbox,shortcode,wp-plupload,mediael&load%5B%5D=ement,wp-mediaelement,media-views,media-editor,media-audiovideo,mce-view,image-edit,svg-painter,wp-auth-check,jquery-ui-tabs,jqu&load%5B%5D=ery-ui-draggable,jquery-ui-slider,jquery-touch-punch,iris,wp-color-picker,media-upload,wp-pointer,editor,wplink,wp-embed&ver=4.8.9
当我们在浏览器中输入此 url 时,它会显示 Cloudflare 页面和验证码以输入"再走一步。请完成安全检查才能访问.."所以可能是网址太长了,Cloudflare Owasp 安全部门看到了其中的问题。
这个问题可能来自 Wordpress 加载脚本.php文件(下面的代码(,它将文件合并为一个,我们有很多插件。
我们能用它做什么?
- 我们可以尝试重写该代码,并将此文件拆分为多个,但我们不想修改 Wordpress 文件:/
- 也许有任何插件可以做到这一点?
function _print_scripts() {
global $wp_scripts, $compress_scripts;
$zip = $compress_scripts ? 1 : 0;
if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
$zip = 'gzip';
if ( $concat = trim( $wp_scripts->concat, ', ' ) ) {
if ( !empty($wp_scripts->print_code) ) {
echo "n<script type='text/javascript'>n";
echo "/* <![CDATA[ */n"; // not needed in HTML 5
echo $wp_scripts->print_code;
echo "/* ]]> */n";
echo "</script>n";
}
$concat = str_split( $concat, 128 );
$concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
$src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}&" . $concat . '&ver=' . $wp_scripts->default_version;
echo "<script type='text/javascript' src='" . esc_attr($src) . "'></script>n";
}
if ( !empty($wp_scripts->print_html) )
echo $wp_scripts->print_html;
}
启用自动缩小
- 登录到仪表板。
- 选择您的帐户和网站。
- 转到速度>优化。
- 选择要缩小的文件类型。
检查您的WordPress设置。
尝试使用wp_enqueue_script
add_action('wp_enqueue_scripts','load_script');
function load_script() {
wp_enqueue_script( 'jsfile', plugins_url( '/js/jsfile.js', __FILE__ ));
}
其中load_script
是来自wp_register_script
的处理程序。请检查最大浏览器网址长度和加载脚本.php未加载,希望对您有所帮助。