【问题标题】:shiny app not running on shinyapps.io: Related to fonts?闪亮的应用程序未在闪亮应用程序.io 上运行:与字体有关?
【发布时间】:2021-07-20 10:33:25
【问题描述】:

我开发了一个闪亮的应用程序,它在我设备的浏览器中运行良好。但是,当我在 shinyapps.io 上上传应用程序时,我收到错误“与服务器断开连接”。从 shinyapps.io 我得到这个应用程序日志:

2021-04-27T04:11:08.075959+00:00 shinyapps[4036798]: Running on host: 8c947af8f6fc
2021-04-27T04:11:08.084768+00:00 shinyapps[4036798]: Server version: 1.8.6.1
2021-04-27T04:11:08.084799+00:00 shinyapps[4036798]: LANG: de_DE.UTF-8
2021-04-27T04:11:08.084811+00:00 shinyapps[4036798]: shiny version: 1.6.0
2021-04-27T04:11:08.084811+00:00 shinyapps[4036798]: R version: 4.0.2
2021-04-27T04:11:08.084845+00:00 shinyapps[4036798]: rmarkdown version: (none)
2021-04-27T04:11:08.084822+00:00 shinyapps[4036798]: httpuv version: 1.5.4
2021-04-27T04:11:08.084857+00:00 shinyapps[4036798]: jsonlite version: 1.7.1
2021-04-27T04:11:08.084857+00:00 shinyapps[4036798]: knitr version: 1.30
2021-04-27T04:11:08.084870+00:00 shinyapps[4036798]: RJSONIO version: (none)
2021-04-27T04:11:08.297255+00:00 shinyapps[4036798]: Using jsonlite for JSON processing
2021-04-27T04:11:08.301048+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.301050+00:00 shinyapps[4036798]: Starting R with process ID: '73'
2021-04-27T04:11:08.084879+00:00 shinyapps[4036798]: htmltools version: 0.5.1.1
2021-04-27T04:11:08.085019+00:00 shinyapps[4036798]: Using pandoc: /opt/connect/ext/pandoc/2.11
2021-04-27T04:11:08.330665+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.330667+00:00 shinyapps[4036798]: Listening on http://127.0.0.1:39137
2021-04-27T04:11:08.426988+00:00 shinyapps[4036798]: Attache Paket: ‘shinydashboard’
2021-04-27T04:11:08.426986+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.426988+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.427714+00:00 shinyapps[4036798]: The following object is masked from ‘package:graphics’:
2021-04-27T04:11:08.427715+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.427715+00:00 shinyapps[4036798]:     box
2021-04-27T04:11:08.427716+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.443079+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.442706+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.442707+00:00 shinyapps[4036798]: Attache Paket: ‘DT’
2021-04-27T04:11:08.442707+00:00 shinyapps[4036798]: 
2021-04-27T04:11:08.443079+00:00 shinyapps[4036798]: The following objects are masked from ‘package:shiny’:
2021-04-27T04:11:08.443080+00:00 shinyapps[4036798]:     dataTableOutput, renderDataTable
2021-04-27T04:11:08.443080+00:00 shinyapps[4036798]: 

所以,我在里面看不到任何有用的东西,但是在浏览器日志中我得到了:

GEThttps://user.shinyapps.io/webapp_example/_w_77b8af3e/AdminLTE-2.0.6/fonts/Source_Sans_Pro_700.ttf
[HTTP/2 404 Not Found 1446ms]

downloadable font: download failed (font-family: "Source Sans Pro" style:normal weight:700 stretch:100 src index:2): status=2147746065 source: https://user.shinyapps.io/webapp_example/_w_77b8af3e/AdminLTE-2.0.6/fonts/Source_Sans_Pro_700.ttf

在应用程序的用户界面中,我使用了 html 标签和图标。这是 ui 的开头:

ui <-  dashboardPage(
  dashboardHeader(title = "Example"
  ),
  
  dashboardSidebar(sidebarMenu(id = "menu1",
                               sidebarMenuOutput("menu"))
  ),
  dashboardBody(
    tabItems(
      tabItem(tabName="title",
              fluidRow(
                box(
                  tags$br(),
                  tags$dt(list(icon("pen"), "Project Title")),
                  tags$ol(
                    tags$br(),
                    tags$li(
                      list(
                        "Give your project a title under ",
                        icon("pen"), tags$b("Project Title")),
                        " in the ",
                        icon("bars"),
                        tags$b(" Menu"),
                        " on the left-hand side"
                    ),
                    tags$br(),
                    tags$li(
                      list(
                        "Continue with",
                        icon("database"),
                        tags$b("Data Preparation")
                      )
                    )
                  ),
                  width = 12,
                  collapsible = TRUE,
                  title = list(icon("info-circle"), "INSTRUCTIONS"),
                  status = "primary",
                  solidHeader = TRUE,
                )
              )
      ),
...............

您知道如何解决此“与服务器断开连接”错误吗?这是因为我使用的字体/图标在我的本地 Windows 机器上运行,但不是在 shinyapps.io 服务器上运行,因为它在 linux 上运行?

如果您需要更多应用代码,请告诉我。只是尽量减少...

谢谢, 一月

【问题讨论】:

    标签: r shiny shinydashboard shinyapps


    【解决方案1】:

    我已经有几年没有尝试过了,但我认为这应该可行。

    (1) 在您的目录中创建一个名为“www”的文件夹。当您将应用程序上传到 shinyapps.io 时,使用您的 rsconnect 上传该文件夹。在该文件夹中,包含您的字体的 .ttf 文件。

    (2) 在您闪亮的应用程序中,但在 ui / 服务器调用之外,在您的应用程序中也包含 library(extrafont); loadfonts()

    (3) 在你的 ui/server 之外的代码中也包含这个。

    dir.create('~/.fonts') 
    file.copy("www/xkcd.ttf", "~/.fonts")  
    system('fc-cache -f ~/.fonts')  
    

    这是来自我的旧示例,我在其中使用字体:xkcd.ttf。您将 xkcd 替换为您的字体名称。

    如果这不起作用,请告诉我。

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2015-03-28
      • 2016-06-15
      • 2016-05-23
      • 2017-06-08
      相关资源
      最近更新 更多