shinydashboard 一些 Font Awesome 图标不工作

shinydashboard some Font Awesome Icons Not Working

使用 shinydashboard 时,我发现有些图标似乎有效,有些则无效。在下面的示例中,电池充满图标不起作用,而时钟关闭图标可以正常工作。我无法弄清楚为什么会发生这种情况。

library(shiny)
library(shinydashboard)

header <- dashboardHeader(title="Some Icons Not Working?")

# No sidebar --------------------------------------------------------------

sm <- sidebarMenu(

  sm <- sidebarMenu(
    menuItem(
      text="asdf",
      tabName="asdfasdf",
      icon=icon("battery-full")),
    menuItem(
      text="qwer",
      tabName="qwerqwer",
      icon=icon("clock-o"))
  )
)

sidebar <- dashboardSidebar(sm)

# Compose dashboard body --------------------------------------------------

body <- dashboardBody(

  tabItems(

  )
)

# Setup Shiny app UI components -------------------------------------------

ui <- dashboardPage(header, sidebar, body, skin="black")

# Setup Shiny app back-end components -------------------------------------

server <- function(input, output) {


}

# Render Shiny app --------------------------------------------------------

shinyApp(ui, server)

好吧,我看是4.4版本的新东西没更新。您可以请求 shiny 团队更新它们,他们会很容易地做到这一点。或者,您可以自己下载并替换之前的内容...

1.Font Awesome download page获取

2. 找到安装 shiny 软件包的 font awesome 文件夹。这应该是像这里这样的地方 ~\Documents\R\win-library.1\shiny\www\shared\font-awesome

3.用新的内容替换这个文件夹的内容(可以删除之前的内容)。下面是我放在那里的

4. 现在您的应用应该可以正常使用新字体

这是一个较旧的问题,但这个问题在 2020 年 7 月对我来说仍然存在。我在 github issues page. The trick is to make sure you are looking at the library of icons in the version of Font Awesome Shiny is calling. Currently (again, July 2020) the version is 4.7. All of these icons 当前工作中找到了解决方案。

另一种选择是在应用的 ui 函数中使用以下代码调用所需的 fontawesome 版本(此解决方案最初发布于 here):

tags$style("@import url(https://use.fontawesome.com/releases/v5.7.2/css/all.css);")

对我来说,在 2020 年 10 月,解决方案是在第一个“fa”之后添加一个“s”,如 fa fa-caret-upfas fa-caret-up,因为它是 font awesome 图标的新语法。

对于 2021 年的新人来说,这个 icon ... 不存在错误 是由于 Font Awesome 将名称更改为 4 到 5 之间的图标(参见 background here).以下是不需要标签样式的解决方案。

如果您收到此错误消息,

此 Font Awesome 图标(“{youriconname}”)不存在:

* 如果提供自定义 html_dependency 这些 name 检查可以用 verify_fa = FALSE 停用

那么,您可以:

  1. 拥抱变化并重命名您的图标,查看库,link to 5.1.5 for example,为您的比赛找到一个新名称。在我的例子中,它正在将图标('dashboard')更改为图标('tachometer-alt')。使用您的旧名称进行搜索,并查看免费的、未变灰的替代图标。

  2. 使用来自 shinydashboard issue 373:

    的 @samssann 有用的解决方法
    1. verify_fa = FALSE 参数添加到 shiny::icon()
    2. 使用shiny::icon("clock")fontawesome::fa("clock")

P.S。你可能会发现图标 仍然显示在你的应用程序上 尽管有错误,因为有一个垫片可以插入 4 到 5。请参阅 @jcheng's answer 这里来自 shiny issue #1966。

现在 shiny::icon 由 fontawesome r 包提供支持,您可以使用 fontawesome:::fa_tbl 来帮助您找到函数所期望的名称。 fontawesome:::fa_version 还告诉您 R 包中当前的 fontawesome 版本。