使用“嵌套”wp_Register_style时缺少dns预取链接

时间:2016-11-22 作者:Ivan

给定此脚本:

function register_styles(){
    wp_register_style(\'google-fonts\', \'//fonts.googleapis.com/css?family=Oswald|Open+Sans\');
    wp_register_style(\'bootstrap\', get_template_directory_uri() . \'/css/bootstrap.min.css\', array(\'google-fonts\'));
    wp_register_style(\'font-awesome\', \'//maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css\', array(\'bootstrap\'));
}
add_action(\'init\', \'register_styles\');

function enqueue_styles(){
    wp_enqueue_style(\'font-awesome\');
}
add_action(\'wp_enqueue_scripts\', \'enqueue_styles\');
样式渲染正确,但我只得到一个dns-prefetch 链接:

<link rel=\'dns-prefetch\' href=\'//maxcdn.bootstrapcdn.com\' />
相反,因为font-awesome 取决于bootstrap 这反过来取决于google-fonts, 我希望dns-prefetch 对于Google字体,如下所示:

<link rel=\'dns-prefetch\' href=\'//fonts.googleapis.com\' />
<link rel=\'dns-prefetch\' href=\'//maxcdn.bootstrapcdn.com\' />
这是Wordpress的bug吗?我使用的是4.6.1版

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

自WP 4.6起prefetch dependencies are only generated 当样式排队时,而不是仅注册时。由于您只在Font Awesome中排队,因此这是您获得的唯一预回迁链接。如果您将所有样式文件正确地排队,您的问题应该会得到解决。

相关推荐

如何设置REST API以引用CDN上的介质

我将Wordpress用作无头服务器,为基于react的web应用程序提供内容,并试图通过CDN获得媒体服务。我已经设置了W3 Total Cache插件,它成功地更改了Wordpress直接提供服务的页面的媒体URL-我可以在浏览器中导航到该页面,并且图像源都来自正确的Cloudfront URL。如果我通过REST API检索相同的页面内容,媒体URL仍然直接引用我的服务器,并且没有被W3 Total Cache插件更改。我已经上传了一个图片到Wordpress,然后用这个图片设置了一个测试页面。导航