注意,你should not use querystrings for file versioning (代理不会缓存它们)。
更好的方法是通过添加一个数字,比如
所以我的方法如下:
如果您正在使用,Apache htaccess会重定向
HTML5 boilerplate 使用apache,您可以在
一零七:
# ------------------------------------------------------------------------------
# | Filename-based cache busting |
# ------------------------------------------------------------------------------
# If you\'re not using a build process to manage your filename version revving,
# you might want to consider enabling the following directives to route all
# requests such as `/css/style.12345.css` to `/css/style.css`.
# To understand why this is important and a better idea than `*.css?v231`, read:
# http://stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\\.(\\d+)\\.(js|css|png|jpe?g|gif)$ $1.$3 [L]
</IfModule>
(通常必须首先通过取消对行的注释来启用它)
主题功能。php我想自动将我的主题版本用于样式表,因此我提出了以下建议:
您可以将以下内容添加到主题中functions.php:
function my_theme_styles() {
$my_theme = wp_get_theme();
$version = str_replace(\'.\',\'\',$my_theme->get( \'Version\' ));
$stylesheet = get_bloginfo(\'stylesheet_directory\').\'/style.\'.$version.\'.css\';
wp_enqueue_style(\'my-main\', $stylesheet, false, null);
}
add_action(\'wp_print_styles\', \'my_theme_styles\');
注意,我提供了
null
作为版本,而不是
false
, 因此Wordpress不会将其版本附加到querystring中。
结果
这会为主题的1.0.2版输出如下样式表:
<link rel=\'stylesheet\' id=\'maw-main-css\' href=\'http://www.example.com/wp-content/themes/my-theme/style.102.css\' type=\'text/css\' media=\'all\' />
在我以我的风格将主题更改为2.0.0版之后。css它将输出以下内容:
<link rel=\'stylesheet\' id=\'maw-main-css\' href=\'http://www.example.com/wp-content/themes/my-theme/style.200.css\' type=\'text/css\' media=\'all\' />
其他注意事项
注意,如果你像我一样去掉版本中的点,你可能会在主题版本1.2.23和1.22.3中遇到问题,因为它们都会导致1223的无点版本。
更好的方法是在中考虑到这一点。htaccess文件。你可以在数字之间加下划线,也可以用下划线代替点。
这是未经测试的,但应该有效:
。htaccess
# ------------------------------------------------------------------------------
# | Filename-based cache busting |
# ------------------------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\\.([_\\d]+)\\.(js|css|png|jpe?g|gif)$ $1.$3 [L]
</IfModule>
功能。php
function my_theme_styles() {
$my_theme = wp_get_theme();
$version = str_replace(\'.\',\'_\',$my_theme->get( \'Version\' ));
$stylesheet = get_bloginfo(\'stylesheet_directory\').\'/style.\'.$version.\'.css\';
wp_enqueue_style(\'my-main\', $stylesheet, false, null);
}
add_action(\'wp_print_styles\', \'my_theme_styles\');