Cloudflare Rocketloaderを特定のJavaScriptファイル用に無効にする必要があり、数時間を費やして別のソリューションを試してみると成功しません。私はWordPressを実行しており、特定の.jsファイルの自動ロケットローダーを省略する必要があります。特定のJavaScript用Cloudflare自動RocketLoaderを無効にする
私のテーマfunctions.phpにこの推奨コードを挿入すると、次のエラーが発生します。
スクリプトURL:のfunctions.phpでexample.com/wp-content/plugins/waveplayer/assets/js/waveplayer.js
コード
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に挿入しようとしましたが、これもスクリプトを省略しませんロケットローダー。あなたはロケットローダーは、例えば、関連するスクリプトタグへのデータ-cfasync =「false」属性を追加することにより、個々のスクリプトを無視することができます
<script data-cfasync="false" src="/waveplayer.js"></script>