自托管 Google 的 Material Design 图标字体 - OTS 解析错误 - 无效的版本标签

Posted

技术标签:

【中文标题】自托管 Google 的 Material Design 图标字体 - OTS 解析错误 - 无效的版本标签【英文标题】:Self hosting Google's Material Design Icon Fonts - OTS parsing error - Invalid Version tag 【发布时间】:2017-04-19 10:50:00 【问题描述】:

我想自己托管 Material Design 图标字体。我关注了他们的developer guide。所以我下载了图标字体from here,将eotttfwoffwoff2文件复制到我的项目目录中,并将其包含在我的CSS中。但是我遇到了很多错误:

问题是为什么以及如何解决它。 SSCCE 如下:

/* fallback */

@font-face 
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/material/MaterialIcons-Regular.eot');
  /* For IE6-8 */
  src: local('Material Icons'), local('MaterialIcons-Regular'), url('fonts/material/MaterialIcons-Regular.woff2') format('woff2'), url('fonts/material/MaterialIcons-Regular.woff') format('woff'), url('fonts/material/MaterialIcons-Regular.ttf') format('truetype');

.material-icons 
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
  /* Support for IE. */
  font-feature-settings: 'liga';
<!DOCTYPE html>

<html>

<head>
  <link type="text/css" rel="stylesheet" href="styles.css" />
  <link type="text/css" rel="stylesheet" href="material.min.css" />
  <script type="text/javascript" src="jquery.min.js"></script>
  <script type="text/javascript" src="material.min.js"></script>
</head>

<body>
  <button class="mdl-button mdl-js-button"><i class="material-icons">chevron_left</i>
  </button>
</body>

</html>

问题是为什么以及如何解决这个问题?

我的项目层次结构:

【问题讨论】:

Failed to decode downloaded font的可能重复 【参考方案1】:

如果您通过“保存链接”从网络浏览器下载字体,您可能会下载不完整的 ASCII 版本而不是二进制文件。我也遇到了这个问题,并从 Jodamo5 here 找到了解决方案 Ps,如果您不使用 FTP,您也可以从浏览器下载完整的 master.zip 文件,然后从 zip 中提取所需的字体文件。

【讨论】:

【参考方案2】:

使用这种格式:

@font-face 
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
       url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, android, ios */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */

【讨论】:

其中哪一部分会有所帮助,它与我的有何不同?

以上是关于自托管 Google 的 Material Design 图标字体 - OTS 解析错误 - 无效的版本标签的主要内容,如果未能解决你的问题,请参考以下文章

为 Google Cloud Run 自定义域禁用弱密码套件?

Google Cloud Run(完全托管):无法自定义域映射

如何将私有、自托管的 NPM 包与 Google App Engine 节点、标准环境一起使用

如何自托管不依赖 WebRTC STUN 服务器 stun.l.google.com:19302?

我如何将 Material-UI 托管样式应用于非 Material-ui、非反应元素?

Google 数据可视化指引