如何在 shinyapps.io 应用程序中安装自定义字体?

How do I install custom fonts in shinyapps.io apps?

此问题与一辉在这里给出的答案有关:

https://groups.google.com/g/shinyapps-users/c/0czcsM4vziM/m/GNuyL3ClCgAJ

在指令中,它说到:

  1. dir.create('~/.fonts')
  2. 下载字体,例如通过 download.file(),到 ~/.fonts
  3. 运行 系统('fc-cache -f ~/.fonts')

在尝试将应用程序部署到 shinapps.io.:

之前,我已将其放入我的 .app 代码中(就在我所有的 library() 调用之后)
dir.create('~/.fonts') 
download.file('https://github.com/**MY USERNAME**/fonts', '~/.fonts')
system('fc-cache -f ~/.fonts')

如您所见,我已将应用程序所需的所有字体放入我的 github 帐户的 public 存储库中。这是字体 .ttf 文件的来源 URL。但是,我想我可能误解了指示,因为我从 shinyapps.io:

得到这个错误
Error in value[[3L]](cond) : Error sourcing /srv/connect/apps/font/app.R
Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted 

我希望使用的字体是“Sarabun”和“Garamond”系列的衍生字体。

请问有人能提供更多易慧解决方案的细节吗?任何帮助将不胜感激。如果您还有另一种解决方案,那将是一件好事。但是,请注意 'font style packages' 往往不能与 shinyapps.io 一起使用,因为它们在本地查找样式,这违背了它的目的!此外,我希望使用特定的 .ttf 文件。

大家干杯,

马特

URL https://github.com/**MY USERNAME**/fonts 指向存储库概述,而不是文件夹本身,因此您可能只下载 URL 上的 HTML 页面。

您需要根据您的 OS 下载存档文件(ZIP 在 Windows 上,.TAR.GZ 在类 Unix 上)。

download.file("https://github.com/**USERNAME**/fonts/archive/master.tar.gz", destfile = "fonts.tar.gz")

# or ZIP file on Windows
download.file("https://github.com/**USERNAME**/fonts/archive/master.zip", destfile = "fonts.zip")

然后你必须提取存档:

untar("fonts.tar.gz", exdir = "~/.fonts/")

# or with ZIP file on Windows
unzip("fonts.zip", exdir = "~/.fonts/")

然后您可以在脚本中使用它:

system('fc-cache -f ~/.fonts')

我希望方法很清楚,因为它可能会因您的 OS、字体和子文件夹等而异...类似的东西应该可以工作。