我目前正在构建一个 VueJS 单页 Web 应用程序,并且我正在根据 this SO post 自托管 Material Icons .我正在使用 webpack v3.6 来捆绑我的 Assets ,并使用 "prerender-spa-plugin": "^3.4.0"
来预渲染我的一些路线以用于 SEO 目的。
我面临的问题是,当我在移动设备(即 iOS)上加载我的网络应用程序时, Material 图标永远不会加载并保持在以下状态。发生这种情况时,刷新页面似乎无法解决问题。很多时候,我必须等待一段时间才能打开不同的浏览器并加载同一页面,以便再次正确加载图标。但是,也有图标加载成功的情况。更令人困惑的是,当我在移动设备上访问我的网站时,这个问题似乎严重影响了我(我没有机会在 Android 上测试,因为我只有 iOS 设备)。我从来没有使用任何桌面浏览器遇到过这个问题。我是否错误地自行托管了 Material 图标,这就是发生这种情况的原因?
下面是我的 _fonts.scss 文件中的 CSS。如您所见,我已经通过 npm 安装了 "material-design-icons": "^3.0.1"
并且我的 url 指向 "material-design-icons"包中的字体文件.
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url("~material-design-icons/iconfont/MaterialIcons-Regular.eot"); /* For IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
url("~material-design-icons/iconfont/MaterialIcons-Regular.woff2") format('woff2'),
url("~material-design-icons/iconfont/MaterialIcons-Regular.woff") format('woff'),
url("~material-design-icons/iconfont/MaterialIcons-Regular.ttf") format('truetype');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 16px; /* 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';
}
我的 app.scss 文件只是按以下方式导入 _fonts.scss 文件。
@import "fonts";
最佳答案
将其放在您的页眉中:
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
例子:
<i class="material-icons">add</i>
官方链接。 Material-icons
关于css - Material Icons 有时无法在移动网络浏览器上加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58314941/