Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
忽略特定JavaScript的Cloudflare自动RocketLoader_Javascript_Wordpress_Cloudflare_Rocket Loader - Fatal编程技术网

忽略特定JavaScript的Cloudflare自动RocketLoader

忽略特定JavaScript的Cloudflare自动RocketLoader,javascript,wordpress,cloudflare,rocket-loader,Javascript,Wordpress,Cloudflare,Rocket Loader,我需要为特定的JavaScript文件禁用Cloudflare Rocketloader,我花了几个小时阅读和尝试不同的解决方案,但没有成功。我正在运行WordPress,需要省略特定.js文件的自动火箭加载器 将此推荐代码插入my theme functions.php会引发以下错误 脚本Url:example.com/wp-content/plugins/waveplayer/assets/js/waveplayer.js functions.php中的代码 function rocket_

我需要为特定的JavaScript文件禁用Cloudflare Rocketloader,我花了几个小时阅读和尝试不同的解决方案,但没有成功。我正在运行WordPress,需要省略特定.js文件的自动火箭加载器

将此推荐代码插入my theme functions.php会引发以下错误

脚本Url:example.com/wp-content/plugins/waveplayer/assets/js/waveplayer.js

functions.php中的代码

function rocket_loader_attributes_start() {
ob_start();
}

function rocket_loader_attributes_end() {
$script_out = ob_get_clean();
$script_out = str_replace(
  "type='text/javascript' src='{rocket-ignore}", 
  'data-cfasync="false"'." src='", 
  $script_out);  
print $script_out;
}

function rocket_loader_attributes_mark($url) {
// Set up which scripts/strings to ignore
$ignore = array (
    'script1.js'
);
//matches only the script file name
preg_match('/(.*)\?/', $url, $_url);
if (isset($_url[1]) && substr($_url[1], -3)=='.js') {
  foreach($ignore as $s) {
     if (strpos($_url[1], $s)!==false)
       return "{rocket-ignore}$url";
  }
  return "$url' data-cfasync='true";
}

return "$url";

}
if (!is_admin()) {
  add_filter( 'clean_url', 'rocket_loader_attributes_mark', 11, 1);
  add_action( 'wp_print_scripts', 'rocket_loader_attributes_start');
  add_action( 'print_head_scripts', 'rocket_loader_attributes_end');
}
错误:

GET https://example.com/blog/sheol-stranger-things/%7Brocket-ignore%7Dhttps://example.com/wp-content/plugins/waveplayer/assets/js/waveplayer.js?ver=2.0.5 404 ()
我还尝试将其插入到header.php中,但这也没有忽略Rocket Loader中的脚本

<script data-cfasync="false" src="/waveplayer.js"></script>     

通过将数据cfasync=“false”属性添加到相关脚本标记,可以让Rocket Loader忽略单个脚本,例如:

  <script data-cfasync="false" src="/javascript.js"></script>      

但是,您必须确保
data cfasync
元素位于
src
之前。这也不能在另一个JavaScript文件中完成

如果这仍然有问题,您可能想考虑使用一个页面规则禁用给定端点的RoKooLoad。 不过,我的建议是在您的站点上启用HTTPS,然后禁用RocketLoader。通过在您的站点上启用HTTPS,您将受益于HTTP/2特性,例如并发性,而无需使用RocketLoader

资源: