闪亮的应用程序未加载图形
Posted
技术标签:
【中文标题】闪亮的应用程序未加载图形【英文标题】:Shiny application not loading with graphics 【发布时间】:2019-05-28 10:34:58 【问题描述】:我有闪亮的应用程序,在我的本地机器上运行良好。我在 centos-release-6-9.el6.12.3.x86_64
上运行的闪亮服务器上部署了该应用程序。应用程序的内容在没有任何图形的情况下被加载,如下所示:
我在 JS 控制台中收到以下消息。
Loading failed for the <script> with source “http://mamged:3838/v01/shared/bootstrap/shim/respond.min.js”. v01:18:1
ReferenceError: Shiny is not defined[Learn More] v01:21:1
Loading failed for the <script> with source “http://mamged:3838/v01/shinyjs/shinyjs-default-funcs.js”. v01:38:1
ReferenceError: shinyjs is not defined[Learn More] v01:39:1
Loading failed for the <script> with source “http://mamged:3838/v01/message-handler.js”. v01:40:1
ReferenceError: jQuery is not defined[Learn More]
[Exception... "Favicon at "http://mamged:3838/favicon.ico" failed to load: Not Found." nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource:///modules/FaviconLoader.jsm :: onStopRequest :: line 156" data: no]
我不确定出了什么问题。
编辑
我已经放了一些示例代码来在服务器上重现该示例。
server.r
# clear console
cat("\014")
# Defining the size of file to be accepted. -1 to accept any size.
options(shiny.maxRequestSize = -1)
# Clear workspace environment
rm(list = ls())
# set locale
Sys.setlocale('LC_ALL','C')
# main function
shinyServer(function(input, output,session)
)
ui.r
library(shiny)
library(shinyjs)
filenames <- list.files(path = "data",pattern="\\.txt$")
names(filenames) <- gsub(pattern = "\\.txt$", "", filenames)
shinyUI(fluidPage(theme = "bootstrap.css",
(navbarPage("MAMGEDCDE",
position = c("fixed-top"),
fluid = TRUE, selected = "none",
navbarMenu("Help", icon = icon("fa fa-infocircle"),
tabPanel(
list(
a("Reference Manual",
target="_blank", href = "MAMGEDManual.pdf"),
a("GPLs Supported",
target="_blank", href="gpl.pdf"),
a("Video Tutorials",
downloadLink("AbsoluteExpression", " Absolute Expression", class=" fa fa-cloud-download"),
downloadLink("DifferentialExpression", " Differential Expression", class=" fa fa-cloud-download")
)
))
),
navbarMenu("Sample Data",
tabPanel(
list(
downloadLink("AffymetrixData", " Affymetrix", class=" fa fa-cloud-download"),
downloadLink("CodelinkData", " Codelink", class=" fa fa-cloud-download"),
downloadLink("IlluminaData", " Illumina", class=" fa fa-cloud-download")
))
),
navbarMenu("Stand-Alone Version", icon = icon("fa fa-infocircle"),
tabPanel(
list(
downloadLink("CodeandData", " MAMGED", class=" fa fa-cloud-download"),
a("Stand-alone Manual", target = "_blank", href= "Stand-alone.pdf")
)
)
)
)
),
br(),
br(),
useShinyjs(), ## initialize shinyjs to reset input files.
sidebarLayout(
sidebarPanel(
br(),
width = 4,
tabsetPanel(id = "tabs",
tabPanel(id = "tab1", value = "tab1",
h5("Upload Data Files"),
br(),
br(),
fileInput("files", label = "Upload Data Files",
multiple = "TRUE",
accept=c('text/csv','text/comma-separated-values,
text/plain', '.csv','.cel','.TXT','.txt', '.zip')),
uiOutput('Display_source_data'),
br(),
textInput("mailid", "Enter Email ID", placeholder = "Enter your email id")
),
tabPanel(id = "tab2", value= "tab2",
h5("Download Data",style="bold"),
br(),
br(),
br(),
textInput("jobid", "Enter Job ID", placeholder = "Enter your job id")
)),
br(),
br(),
tags$head(tags$script(src = "message-handler.js")),
fluidRow(
conditionalPanel(
condition = "input.tabs == 'tab1'",
column(4,
actionButton("Submit", label = "Submit"))
),
conditionalPanel(
condition = "input.tabs == 'tab2'",
br(),
column(4,
uiOutput("button")
)),
column(4,
actionButton("Reset_Input", label = "Reset"))
),
br()
),
mainPanel(
titlePanel(
headerPanel(
h2( "Analysis of Microarray Gene Expression Data",
align="center", style="bold"
)
)
),
h5("test page")
)
)
))
在本地机器上运行良好。
还有一件事,我是否需要使用sudo -i R
安装 r 包才能使其工作。我安装了所有没有sudo
的包。
【问题讨论】:
Shiny 服务器日志文件中是否有任何错误? @ginberg 现在应用程序也没有启动并给我^[[32m[2017-02-03 17:23:56.841] [INFO] shiny-server - ^[[39mError getting worker: Error: The application exited during initialization. ^[[32m[2017-02-03 17:23:56.861] [INFO] shiny-server - ^[[39mError getting worker: Error: The application exited during initialization.
您检查应用程序日志文件了吗?默认情况下,它位于 /var/log/shiny-server 目录中。运行您的应用程序,然后检查此目录以获取最新文件。如果它们的文件已被删除,根据 Shiny Server 的版本,您可以将以下指令添加到 /etc/shiny-server/shiny-server.conf 文件(它必须在顶层):preserve_logs true;重新启动 Shiny Server 后,再次访问您的应用程序,并检查日志文件。日志文件中通常会有对您有所帮助的有用信息。
@ginberg 我查了,最新信息是^[[32m[2017-02-06 19:13:41.893] [INFO] shiny-server - ^[[39mStopping listener on 0.0.0.0:3838 ^[[32m[2017-02-06 19:13:41.894] [INFO] shiny-server - ^[[39mShutting down worker processes (with notification) 0^[[32m[2017-02-06 19:13:46.089] [INFO] shiny-server - ^[[39mShiny Server v1.4.2.786 (Node.js v0.10.40) ^[[32m[2017-02-06 19:13:46093] [INFO] shiny-server - ^[[39mUsing pidfile /var/run/shiny-server.pid
。仅此而已。我有时会收到Favicon
错误
@AwaitedOne 我的建议是您提供对创建错误的代码的访问权限,或者提供显示您遇到的错误的示例代码。没有代码示例,很难调试你的情况。
【参考方案1】:
您的应用程序似乎缺少一个包。
默认情况下检查您的应用程序日志位于
/var/log/shiny-server
。
您也可以将以下选项添加到您的配置文件
/etc/shiny-server/shiny-server.conf
:
preserve_logs true; (at the top level)
在 Shiny Server 重新启动后,再次检查您的日志文件。 寻找丢失的包或库。希望对您有所帮助。
【讨论】:
感谢您的回答。我更新了配置文件,但在日志文件中仍然没有看到错误。【参考方案2】:可能闪亮服务器正在以特殊用户身份运行。
假设用户名与其他服务器上的“www-data”类似。
现在的问题是 web 目录中的文件可能可以被闪亮服务器本身访问,但不能被客户端访问。长话短说:调整 Unix 文件权限用于所有文件,以便普通客户端可以访问这些文件。必须对所有应公开可用的文件(如图像、css 文件和 js 文件)执行此操作。当然,它也可以包含您想要提供的任何其他文件,例如 PDF、Office 文件等。
为了便于阅读,unix 权限必须为 0744
,最后一位数字是供公众使用的,在您的情况下可能会更改为 chmod
。
有关chmod
的详细说明,您可以使用man chmod
在命令行上显示手册页。
在某些环境中,所有“公共”文件通常都排序在名为“公共”或“公共”的文件夹中,然后只需递归更改这些文件夹的文件权限。即使对于这里的公用文件夹,我也使用复数,因为在不同的目录中可以有几个总是具有相同名称的文件夹。在您的服务器上,shared
文件夹似乎具有相同的功能,但并非所有公共文件都在其中排序。如果您更喜欢文件夹名称shared
而不是public
,则无需更改,只需相应地调整权限即可。
我上面提到的服务器用户“www-data”的原因是 web 目录中的文件应该有这个用户作为所有者,但不需要公开。除了应该在浏览器中直接调用的文件之外,您所有的 r 文件都应该是私有的。因此,所有文件都分为公共和私人。文件所有者可以用chown
调整,也可以在命令行递归调用,man chown
也可以显示详细描述。
关于公共 r 文件,我不知道它们是否必须在闪亮服务器上可执行,如果是这样,那么这些文件的文件权限必须是 0755
。 p>
更新 还要确保所有文件都存在于您的 www 目录中,并且该域已链接到正确的文件夹。
【讨论】:
谢谢你的回答,我认为有阅读权限-rwxrwxr-x 1 Check.sh
-rw-rw-r-- 1 Job.sh
-rwxrwxr-x 1 ibab ibab counter.RData
drwxrwxrwx 2 ibab ibab data
-rwxrwxrwx 1 ibab ibab log.txt
-rwxrwxr-x 1 ibab ibab log_180202.txt
-rwxrwxrwx 1 ibab ibab server.r
-rwxrwxr-x 1 ibab ibab server1.r
-rwxrwxrwx 1 ibab ibab server_offline.R
@@-rwxrwxr-x 1 ibab ibab timelog.txt
-rwxrwxr-x 1 ibab ibab ui.r
`drwxr--r-- 2 ibab ibab www'
检查图像和 javascipt 文件的权限,可能它们必须驻留在文件夹 www
www
中的所有文件都有读权限。 -rwxrwxr-x 1 ibab ibab 9919087 Apr 24 2018 Illumina Data.zip
-rwxrwxr-x 1 ibab ibab 861877836 Apr 24 2018 MAMGED.zip
-rwxrwxr-x 1 ibab ibab 3175927 Apr 24 2018 MAMGEDManual.pdf
-rwxrwxr-x 1 ibab ibab 533932 Apr 24 2018 Stand-alone.pdf
-rwxrwxr-x 1 ibab ibab 263 Apr 24 2018 all_sessions.R
-rwxrwxr-x 1 ibab ibab 155438 Apr 24 2018 bootstrap.css
-rwxrwxr-x 1 ibab ibab 184232 Apr 24 2018 gpl.pdf
-rwxrwxr-x 1 ibab ibab 174 Apr 24 2018 message-handler.js
www 中缺少这些文件:v01/shared/bootstrap/shim/respond.min.js
、v01/shinyjs/shinyjs-default-funcs.js
、v01/message-handler.js
。图像也丢失了。也许你搞砸了你的文件夹层次结构?
感谢您的宝贵时间。以上是关于闪亮的应用程序未加载图形的主要内容,如果未能解决你的问题,请参考以下文章