css - Material Icons 有时无法在移动网络浏览器上加载

标签 css vue.js fonts material-design

我目前正在构建一个 VueJS 单页 Web 应用程序,并且我正在根据 this SO post 自托管 Material Icons .我正在使用 webpack v3.6 来捆绑我的 Assets ,并使用 "prerender-spa-plugin": "^3.4.0" 来预渲染我的一些路线以用于 SEO 目的。

我面临的问题是,当我在移动设备(即 iOS)上加载我的网络应用程序时, Material 图标永远不会加载并保持在以下状态。发生这种情况时,刷新页面似乎无法解决问题。很多时候,我必须等待一段时间才能打开不同的浏览器并加载同一页面,以便再次正确加载图标。但是,也有图标加载成功的情况。更令人困惑的是,当我在移动设备上访问我的网站时,这个问题似乎严重影响了我(我没有机会在 Android 上测试,因为我只有 iOS 设备)。我从来没有使用任何桌面浏览器遇到过这个问题。我是否错误地自行托管了 Material 图标,这就是发生这种情况的原因?

enter image description here

下面是我的 _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/

相关文章:

css - 如何删除汉堡菜单右侧的空白区域

css - Shopify:通知邮件中的样式从何而来?

jquery - 选择子元素而不选择父元素

vue.js - 如何动态设置 v-select 值?

javascript - 选择选项 onclick 更改字体系列

Bootstrap 上的 HTML 自定义字体不起作用

javascript - 清洁 'Tabbing' 系统。 (JavaScript?)

javascript - Vue cli 删除脚本注入(inject)

webpack - 语法错误 : Unexpected token 'const' (with Vue, Karma、Webpack、PhantomJS)

html - 电子邮件 HTML 签名;当我改变表格大小时字体大小改变