问题描述

好的,所以我们可能都很熟悉在加载页面 (破坏浏览器缓存) 时刷新主要 CSS 文件的典型方法,对吧?

<link rel="stylesheet" type="text/css" media="all"
  href="<?php echo get_stylesheet_uri();
    echo '?'.filemtime( get_stylesheet_directory() . '/style.css'); ?>" />

我需要在另一个 CSS 文件上做同样的事情。是的,我的 style.css 文件拥有自己的一套 @import “css/myFile.css”,它们都可以正常工作,但是如果你愿意,幽默我。所以,回到 header.php,就在第一个链接之后,并且在调用之前,对 wp_head():

<?php $cssFile = get_stylesheet_directory_uri().'/css/other.css'; ?>
<link rel="stylesheet" type="text/css" media="all"
  href="<?php echo $cssFile; echo '?'.filemtime($cssFile); ?>" />

这导致警告 (作为浏览器获取页面时链接的 href 属性的一部分):

Warning: filemtime(): stat failed for http://localhost/wordpress/wp-content/themes/my_theme/css/other.css

文件的路径似乎正确构建 (另一个.css 文件在那里),但是 filemtime(stat,实际上) 失败了。怎么来的?

其他推荐的方法来包含 CSS.c 文件,而不是 style.css 的’latest’ 版本?我应该用 wp_register_style 去吗?如果是这样的话,我怎么能告诉 wp_register_style 来破坏浏览器缓存 (即:即使浏览器缓存,我得到最新版本的 css 文件)?提前致谢

最佳解决思路

您在第一个通话中使用该文件的路径,但其第二个 URL 中的 URL 。所以不行。

次佳解决思路

我倾向于使用 wp_enqueue_style 排列主样式表,并在我想要防止缓存时附加一些东西到版本。

$ver = '';
wp_enqueue_style( 'theme_style', get_bloginfo('stylesheet_url'), false, $ver );

当我想停止缓存时,我会更新 $ver 到不断变化的东西,如时间..

$ver = time();

或类似的东西..

参考文献

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