gpt4 book ai didi

r - 在ShinyProxy中获取CSS和Javascript文件时如何解决 '404 (Not Found)'错误

转载 作者:行者123 更新时间:2023-12-02 19:59:05 26 4
gpt4 key购买 nike

我正在尝试使用ShinyProxy启动 Shiny 的应用程序-我之前已经做过很多次了。但是,此应用未正确使用运行它所需的任何CSS或JS文件。

当我使用docker run -p 3838:3838 my_app手动运行该应用程序时,一切正常。但是,将ShinyProxy指向my_app图像时,生成的应用程序无法加载任何CSS或JS文件。
Dockerfile

FROM openanalytics/r-base

MAINTAINER Daniel Beachnau "DannyBeachnau@gmail.com"

# Dependencies outside of R
RUN apt-get update && apt-get install -y \
sudo \
gdebi-core \
pandoc \
pandoc-citeproc \
libcurl4-gnutls-dev \
libcairo2-dev \
libxt-dev \
xtail \
wget \
libpq-dev \
libmariadb-client-lgpl-dev \
# Might be needed for the archivist R-Library
dbus \
systemd \
# needed for odbc
unixodbc-dev

RUN apt-get install apt-transport-https curl -y
RUN curl http://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install msodbcsql17 -y

# Download R-Packages
# tidyverse
RUN R -e "install.packages('tidyr')"
RUN R -e "install.packages('dplyr')"
RUN R -e "install.packages('readr')"
# Shiny Packages
RUN R -e "install.packages('shiny')"
RUN R -e "install.packages('shinycssloaders')"
RUN R -e "install.packages('shinydashboard')"
RUN R -e "install.packages('shinyWidgets')"
RUN R -e "install.packages('DT')"
RUN R -e "install.packages('shinyjs')"
RUN R -e "install.packages('flexdashboard')"
# Database Packages
RUN R -e "install.packages('odbc')"
RUN R -e "install.packages('RMySQL')"
# Other
RUN R -e "install.packages('devtools')"
RUN R -e "install.packages('lubridate')"
RUN R -e "install.packages('reshape2')"
RUN R -e "install.packages('grid')"
RUN R -e "install.packages('lemon')"
RUN R -e "install.packages('scales')"
RUN R -e "install.packages('ggthemes')"
RUN R -e "install.packages('ggplot2')"

RUN R -e "devtools::install_bitbucket(repo = 'my_repo/my_package', auth_user = 'my_username', password = 'my_password')"

# copy the app to the image
COPY . /root

# run the script to update the app data
WORKDIR /root
RUN Rscript app_data_update.R

WORKDIR /root/app
COPY Rprofile.site /usr/lib/R/etc/
EXPOSE 3838
CMD ["R", "-e", "shiny::runApp('/root/app', host='0.0.0.0', port=3838)"]
application.yml
shiny:
proxy:
title: ShinyProxy Server
logo-url: /images/logo-image.png
landing-page: /
heartbeat-rate: 10000
heartbeat-timeout: 60000
container-wait-time: 60000
port: 8080
authentication: ldap

# Docker configuration
docker:
cert-path: /home/none
url: http://localhost:2375
port-range-start: 20000
support:
container-log-path: ./container-logs
mail-to-address: DannyBeachnau@gmail.co,

- name: my_apps_name
display-name: Shiny App
docker-image: dbeachnau/my_app
groups: [Shiny Users Management]
logo-url: /images/logo-image.png
container-volumes: ["/path/to/app:/root/app"]


logging:
file:
shinyproxy.log

这是应用程序在 Shiny 代理中的外观。

problem

这是我的应用在手动运行时的外观。

desired

chrome的inspect工具中的控制台充满了诸如
GET https://myshinyserver.com/container_name/font-awesome-5.3.1/css/all.min.css net::ERR_ABORTED 404 (Not Found)
我确实在ShinyProxy上运行了其他能够正确显示的应用程序,但是我无法解决这些应用程序配置与该应用程序配置之间的区别。让我知道是否需要其他详细信息来诊断问题。感谢所有反馈-谢谢。

最佳答案

您可能会在Shiny v1.3.0(而不是早期版本)中看到这种情况。如果是这样,则可能是因为您的NGINX代理指令中的配置错误。我已经写了详细信息here,但我还将在此处发布重要的详细信息。

proxy_set_header Connection "upgrade";

当该指令仅用于WebSocket时,此指令使NGINX向每个HTTP请求添加一个Connection:升级 header 。

此行是NGINX Inc.本身推荐的,但是,这些建议仅用于代理WebSockets的流量,而Shiny流量则是普通HTTP请求和WebSockets的组合。较旧的Shiny / httpuv版本不介意这种情况,但新版本更严格。

正确的配置如下所示:
http {

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

server {
listen 80;


location / {
proxy_pass http://localhost:3838;
proxy_redirect / $scheme://$http_host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
proxy_buffering off;
}
}
}

有关其他示例,请参见 RStudio Community post中链接的文章。

关于r - 在ShinyProxy中获取CSS和Javascript文件时如何解决 '404 (Not Found)'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55582092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com