css - Css加载字体:url中的#是什么意思以及如何添加GET参数?
问题描述
我正在使用带有 css/scss 的 fontawesome。字体嵌入在 scss 中,如下所示:
src: url('#{$fa-font-path}/fa-regular-400.eot');
src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),
url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),
url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');
为了使预加载在我们的服务器上正确运行,我需要添加一个 GET 参数(这是由于会话问题),所以我需要更改
fa-regular-400.woff2
至
fa-regular-400.woff2?preload
但是# 有什么作用?在网页上的“普通”URL 中,它是锚点,但在字体文件中?如何正确地将预加载参数添加到:
fa-regular-400.eot?#iefix
fa-regular-400.svg#fontawesome
是吗:
fa-regular-400.eot?#iefix&preload
fa-regular-400.svg#fontawesome?preload
或者
fa-regular-400.eot?preload#iefix
fa-regular-400.svg?preload#fontawesome
??
解决方案
fa-regular-400.eot?preload#iefix
fa-regular-400.svg?preload#fontawesome
这是正确的方法。这#part
只是一个片段,在解析 HTTP 请求时通常会被完全忽略。我什至怀疑大多数浏览器甚至不会将其发送到服务器。
不过,您可能想仔细检查fa-regular-400.eot?preload#iefix
旧的 IE 版本(IE11 之前),它的全部原因首先是他们的 CSS 解析器忽略了?
我们滥用忽略其他字体格式之后的所有内容。
对于 SVG 字体,#id
它只是告诉浏览器文件中的哪个 svg 元素用作字体。
推荐阅读
- c# - 如何在一行中写入多个字符串?
- image-processing - 使用 Python 从多个图像文件中提取文本
- javascript - ES6 功能组件 React.js 中的 Getter
- c# - 在 C++/CLI/C# 项目中启用“本机代码调试”会使应用程序崩溃
- kubernetes - 如何将 kubernetes pod 的主机名设置为其 IP 地址?
- jenkins - 如何使用 groovy 脚本将 Jenkins Jobs 从一个文件夹复制到另一个文件夹?
- html - 如何在 Gatsby 框架中构建工作公用文件夹?我的意思是,如果我打开 index.html,我应该可以访问整个网站
- php - Laravel old input of selected option
- sql-server - 限制重复记录同时插入表中
- c# - xamarin 形成 HttpClient 不完整的 Json