【问题标题】:Font-Awesome 5 PRO in rails 5 appRails 5 应用程序中的 Font-Awesome 5 PRO
【发布时间】:2018-07-30 04:17:15
【问题描述】:

为了获得 pro 包的好处,从 gem 中添加 font-awesome 5 是不可能的。

尝试了不同的方法将提供的文件添加到项目中。关注Official guide

包装内容:

我在其他 stackoverflow 帖子中看到,将其添加到应用程序的正确方法是在

vendor/assets/

但在那之后,将 /on-server/ 的 css、js 和字体或 /web-fonts-with-css/ 文件仍然不起作用。

尝试在 scss 中添加自定义样式表链接、要求和导入。没办法实现。

希望我已经说清楚了。

【问题讨论】:

    标签: ruby-on-rails sass ruby-on-rails-5 font-awesome


    【解决方案1】:

    如果您使用的是支持节点模块的 rails。

    1. 添加配置
    npm config set "@fortawesome:registry" https://npm.fontawesome.com/ && \
      npm config set "//npm.fontawesome.com/:_authToken" YOUR_AUTH_TOKEN
    

    将配置保存在应用程序根文件夹的.npmrc文件中,如下所示

    @fortawesome:registry=https://npm.fontawesome.com/
    //npm.fontawesome.com/:_authToken=YOUR_AUTH_TOKEN
    
    1. 运行 NPM 或 YARN 安装包
    npm install --save @fortawesome/fontawesome-pro
    

    yarn add @fortawesome/fontawesome-pro
    
    1. app/assets/application.js 文件中添加包
    //= require @fortawesome/fontawesome-pro/js/all.min.js
    
    
    1. 通过在 config/application.rb 中添加以下行,将 Node Modules 文件夹包含在 assets path
    config.assets.paths << Rails.root.join('node_modules')
    

    再次启动服务器,您就可以使用 font-awesome PRO

    更多详情您可以访问以下链接:

    https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers

    【讨论】:

    • 请不要只写链接答案。
    • 这是一个很棒(没有双关语)的答案,@JJforTransparencyandMonica!
    • @ardochhigh 当我发表评论时,这是一个仅限链接的答案。 ;)
    【解决方案2】:

    还有一种方法可以在没有任何 js 的情况下使用原始 svg,从而避免渲染问题和导致烦人的闪烁副作用的讨厌的 hack

    它以名为 faw_icon https://github.com/alexwebgr/faw_icon 的视图助手的形式出现,它提供了三种将 svg 加载到应用程序中的方法

    1. 使用元数据中的icons.json
    2. 使用原始的单个 svg 文件
    3. 使用 svg 精灵

    根据设计,它不会捆绑任何图标以适应小下载量,并让开发人员能够在新图标集可用时更新图标集、使用自定义图标集或 PRO 集合

    【讨论】:

      【解决方案3】:

      使用“带有 CSS 的 Web 字体”方法存在问题,因为字体 url 被硬编码到 CSS 文件中,但可以做到。

      CSS:

      将 fontawesome-all.css 复制到“vendor/assets/stylesheets”文件夹。

      使用

      更新您的 app/assets/stylesheets/application.css 文件
       *= require fontawesome-all
      

      字体:

      然后将 webfonts 文件夹复制到 public 目录,这样所有字体都在 public/webfonts 文件夹中。

      重新启动您的服务器,您现在应该可以看到您的 FA5 字体了。

      带有 JS 的 SVG

      如果你想让它更容易(只跟踪 1 个文件),那么你可以使用 'SVG with JS' 方法。

      JS:

      将 fontawesome-all.js 复制到 'vendor/assets/javascripts' 文件夹。

      使用

      更新您的 app/assets/stylesheets/application.js 文件
       //= require fontawesome-all
      

      重新启动您的服务器,一切顺利。

      【讨论】:

      • 非常感谢,我刚刚试了一下,终于成功了。解释得很好!
      • 不用担心。作为旁注,我刚刚读到带有 JS 解决方案的 SVG 目前不适用于 turbolinks。 github.com/FortAwesome/Font-Awesome/issues/11924
      • CSS/Fonts 方法适用于 Turbolinks,这就是我正在使用的。
      • @Adam21e 如果你添加它会起作用:document.addEventListener 'turbolinks:load', -> FontAwesome.dom.i2svg()
      猜你喜欢
      • 2018-07-23
      • 1970-01-01
      • 2019-12-17
      • 2019-07-10
      • 1970-01-01
      • 2020-04-15
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多