问题描述

我在谷歌速度测试中遇到关于我的脚本中的查询字符串的迟到。所以,我试图通过传递 false 作为参数的参数来删除它们。但是,它似乎没有效果:

wp_register_script('myscript', get_bloginfo('template_directory').'/scripts.myversionnumber.js',false,false,true);
wp_enqueue_script('myscript');

PS:js 文件名的”myversionnumber” 部分是我控制缓存/版本控制的手段,而不是显示出一些代理服务器 (根据 Google pagepeed 测试) 的?ver =方法:

Remove query strings from static resources Enabling public caching in the HTTP headers for static resources allows the browser to download resources from a nearby proxy server rather than from a remote origin server. Learn more

Suggestions for this page

Resources with a “?” in the URL are not cached by some proxy caching servers. Remove the query string and encode the parameters into the URL for the following resources:

最佳解决方案

我认为你必须传递 NULL 作为第 4 个参数。

wp_register_script(
    'myscript',
    get_bloginfo('template_directory').'/scripts.myversionnumber.js',
    false,
    NULL,
    true);
wp_enqueue_script('myscript');

次佳解决方案

您可以将 null 作为版本值传递给 wp_register_scriptwp_enqueue_script,它应该丢弃查询字符串。

<?php
wp_enqueue_script(
   'myscript',
   '/path/to/script.js',
   array(),
   null
);

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。