問題描述

好的,所以我們可能都很熟悉在載入頁面 (破壞瀏覽器快取) 時重新整理主要 CSS 檔案的典型方法,對吧?

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

我需要在另一個 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="http://<?php%20echo%20$cssFile;%20echo%20'?'.filemtime($cssFile);%20?>" />

這導致警告 (作為瀏覽器獲取頁面時連結的 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。