2016-08-05 10 views
0

Wenn Sie ein Bild in einem normalen glänzenden App aufnehmen möchten, können SieEinschließlich ein Bild in einem glänzenden App-Paket

shiny::img(src = "imgName.png") 

in Ihrer ui Funktion mit der folgenden Verzeichnisstruktur nennen würde:

| shinyApp/ 
    | ui.R 
    | server.R 
| www/ 
    | myImage.png 

Wie replizieren Sie das in einer glänzenden App, die auch ein r-Paket ist? Ich habe versucht, genau das zu tun alles, was das gleiche, aber mit der folgenden Verzeichnisstruktur, ohne Glück:

| packageName/ 
    | R 
     | app.R # contains ui.R and server.R 
    | inst 
     | www 
      | imgName.png 

Für das, was es wert ist, das Paket in meinem Fall tatsächlich ein glänzendes Modul bündelt, aber ich don‘ Ich denke, das ist relevant für dieses Problem.

EDIT: Minimal example zeigt mein Problem, mit this package.

+0

Habe es nie selbst gemacht, aber [hilft diese Antwort] (http://stackoverflow.com/a/21998722/3220769)? – TomNash

+0

Das ist der Weg, es für eine normale App (die erste Art, die ich in meiner Frage beschrieben) zu tun, aber es funktioniert nicht, wenn es in einem Paket ist. – tbadams45

Antwort

1

Sie haben mehr als eine Option. Der einfachste Weg ist die PNG-Datei in dem Ordner inst zu platzieren und sie dann Zugriff mit system.file("imgName.png",package="yourPackage")

Ihrem Ansatz sollte wahrscheinlich funktionieren, wenn Sie den Code shiny::img(src="www/imgName.png") geändert, aber ich bin nicht sicher.

+0

Für mein Paket 'dtphase1', mit' flowchapter.png' im 'inst'-Ordner funktioniert das nicht:' shiny :: img (src = system.file ("flussdiagramm.png", package = "dtphase1")) '. Ist das nicht, was du meintest? – tbadams45

+0

Ist das Paket in Ihrer Bibliothek installiert? – Carl

+0

Yup. Installierte letzte Version mit 'devtools :: install_github (" tbadams45/dtphase1 ")'. Das Paket selbst funktioniert gut. Es ist nur das Bild, das ist das Problem. – tbadams45

2

Verwenden Sie addResourcePath, um ein Verzeichnis hinzuzufügen, das für den Shiny-Web-Server sichtbar ist.

Wie auf der Dokumentation angegeben http://shiny.rstudio.com/reference/shiny/latest/addResourcePath.html

Fügt ein Verzeichnis der statischen Ressourcen Shiny Web-Server, mit dem angegebenen Pfad-Präfix. Primär für Paketautoren gedacht, um unterstützende JavaScript/CSS-Dateien für ihre Komponenten verfügbar zu machen.

Es sollte Ihnen ermöglichen, Verweise auf jede Datei in Ihrem Paket zu machen.