为了避免浏览器的缓存,我想将版本查询字符串连接到我@font-face
的网址.有很多网址.如何以正确的方式?
@font-face { font-family: 'fontawesome'; src: url('/styles/fonts/fontawesome/fontawesome.eot?6840zz'); src: url('/styles/fonts/fontawesome/fontawesome.eot?6840zz#iefix') format('embedded-opentype'), url('/styles/fonts/fontawesome/fontawesome.ttf?6840zz') format('truetype'), url('/styles/fonts/fontawesome/fontawesome.woff?6840zz') format('woff'), url('/styles/fonts/fontawesome/fontawesome.svg?6840zz#icomoon') format('svg'); font-weight: normal; font-style: normal; }
Brett DeWood.. 6
Font Awesome的大多数实现都会将版本化查询字符串附加到@font-face
字体路径.当字体更新为新版本时,这些版本化查询字符串将破坏缓存.也就是说,当您更新字体时,版本化查询字符串将从类似的?v=4.7.0
更改?v=4.7.1
.
在大多数情况下,您不需要做任何额外的事情,因为大多数实现都会为您处理此问题.请记住,许多其他@font-face
生成器和包也将附加一个版本参数.这里有一些例子:
下载Font Awesome套件
如果从http://fontawesome.io/下载Font Awesome工具包,则包含的font-awesome.css
文件将附加到路径的版本化查询字符串.防爆.
@font-face { font-family: 'FontAwesome'; src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; }
的?v=4.7.0
是版本的查询字符串.如果您下载新版本的Font Awesome,此版本号将会更改.
字体真棒CDN
如果您使用CDN实现,您将获得包含,如
这将导入以下CSS:
@font-face { font-family: 'FontAwesome'; src: url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.eot'); src: url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.woff2') format('woff2'), url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.woff') format('woff'), url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.ttf') format('truetype'), url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.svg#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; }
Font Awesome CDN的URL包含版本号,更新后会更改,打破缓存并无需附加版本化查询参数.
使用Sass或更少
如果您使用的是Less/Sass文件,则会添加版本化查询字符串.防爆.
@font-face { font-family: 'FontAwesome'; src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; }
该@{fa-version}
会追加当前版本(目前4.7.0
的字体路径.此版本号将更新当字体被更新.在这个意义上,你可以更新所有版本查询通过改变PARAMS一次fa-version
变量.
#iefix
关于#iefix
散列,这是在单个内定义多个字体格式时修复IE8及以下版本的问题的方法src
.如果您需要在IE8及以下版本中使用您的字体,则需要添加#iefix
(或任何哈希值),以便这些浏览器不会抛出错误.更多关于这个SO问题.
其他@ font-face字体和实现
如果您使用Font Awesome以外的字体或其他实现,则可以在字体路径上附加一个哈希以创建自己的缓存区.通常会看到附加日期字符串,例如01302017
,可以在需要时手动更新或通过构建脚本进行更新.
Font Awesome的大多数实现都会将版本化查询字符串附加到@font-face
字体路径.当字体更新为新版本时,这些版本化查询字符串将破坏缓存.也就是说,当您更新字体时,版本化查询字符串将从类似的?v=4.7.0
更改?v=4.7.1
.
在大多数情况下,您不需要做任何额外的事情,因为大多数实现都会为您处理此问题.请记住,许多其他@font-face
生成器和包也将附加一个版本参数.这里有一些例子:
下载Font Awesome套件
如果从http://fontawesome.io/下载Font Awesome工具包,则包含的font-awesome.css
文件将附加到路径的版本化查询字符串.防爆.
@font-face { font-family: 'FontAwesome'; src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; }
的?v=4.7.0
是版本的查询字符串.如果您下载新版本的Font Awesome,此版本号将会更改.
字体真棒CDN
如果您使用CDN实现,您将获得包含,如
这将导入以下CSS:
@font-face { font-family: 'FontAwesome'; src: url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.eot'); src: url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.woff2') format('woff2'), url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.woff') format('woff'), url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.ttf') format('truetype'), url('//use.fontawesome.com/releases/v4.7.0/fonts/fontawesome-webfont.svg#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; }
Font Awesome CDN的URL包含版本号,更新后会更改,打破缓存并无需附加版本化查询参数.
使用Sass或更少
如果您使用的是Less/Sass文件,则会添加版本化查询字符串.防爆.
@font-face { font-family: 'FontAwesome'; src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; }
该@{fa-version}
会追加当前版本(目前4.7.0
的字体路径.此版本号将更新当字体被更新.在这个意义上,你可以更新所有版本查询通过改变PARAMS一次fa-version
变量.
#iefix
关于#iefix
散列,这是在单个内定义多个字体格式时修复IE8及以下版本的问题的方法src
.如果您需要在IE8及以下版本中使用您的字体,则需要添加#iefix
(或任何哈希值),以便这些浏览器不会抛出错误.更多关于这个SO问题.
其他@ font-face字体和实现
如果您使用Font Awesome以外的字体或其他实现,则可以在字体路径上附加一个哈希以创建自己的缓存区.通常会看到附加日期字符串,例如01302017
,可以在需要时手动更新或通过构建脚本进行更新.