【问题标题】:Cannot use Cloudflare's Rocket Loader in manual mode with wp_enqueue_script无法通过 wp_enqueue_script 在手动模式下使用 Cloudflare 的 Rocket Loader
【发布时间】:2012-02-28 18:25:14
【问题描述】:
我的 wordpress 网站上有几个依赖 wp_enqueue_script 函数的插件。最近我有一个使用 Cloudflare 的客户想要实现 Rocket Loader,它是一个自动 javascript 异步加载器。问题是几个脚本不能很好地使用它,这就是为什么我必须禁止它们自动异步加载。
根据Rocket Loader wiki,我需要将 data-cfasync="false" 属性插入到标签中,这对于 wp_enqueue_script 函数似乎是不可能的。
还有其他方法来定义这些属性吗?如果没有,是否有其他方法可以防止 Rocket Loader 异步加载这些特定脚本?
【问题讨论】:
标签:
javascript
wordpress
cloudflare
【解决方案1】:
我是维护 Rocket Loader 的工程师。不幸的是,如果无法直接访问脚本标签的 HTML,目前您无法手动禁用单个标签的 Rocket Loader。
一种可能的解决方案是,您可以使用我们的页面规则功能在与基本模式匹配的整个页面上选择性地禁用 Rocket Loader。如果这听起来对您来说是一个合适的解决方案,请登录您的 CloudFlare 帐户并查看“页面规则”。
这个问题确实给了我一个好主意:我们可以提供一个 WordPress 插件,它公开了一个 CloudFlare Rocket Loader 感知版本的 wp_enqueue_script。如果这是 WordPress 开发人员向页面添加脚本的首选方式,那么对于 CloudFlare 用户来说,这似乎是一个方便的插件。
最后,如果您愿意的话,了解您知道通过 Rocket Loader 运行有问题的任何特定脚本会很有用。我们一直在努力使它更好,更兼容现有的 JavaScript,所以如果你能在 wco [ at ] cloudflare [ dot ] com 给我发一封电子邮件,我将非常感激!