рд╣рд╛рдп рд╕рдореБрджрд╛рдп,
рдореИрдВ Shinyproxy рдХреЗ рд╕рд╛рде рдПрдХ рдбреИрд╢ (рдирд╡реАрдирддрдо рдмрд┐рд▓реНрдб) рдРрдк рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Shinyproxy рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдбреИрд╢/рдбреИрд╢ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ:
рдбреИрд╢ 1.1.1
рдбреИрд╢-рдмреВрдЯрд╕реНрдЯреНрд░реИрдк-рдШрдЯрдХ 0.7.1
рдбреИрд╢-рдХреЛрд░-рдШрдЯрдХ 1.1.1
рдбреИрд╢-рдПрдЪрдЯреАрдПрдордПрд▓-рдШрдЯрдХ 1.0.0
рдбреИрд╢-рд░реЗрдВрдбрд░рд░ 1.0.0
рдбреИрд╢-рдЯреЗрдмрд▓ 4.1.0
рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реНрдордд рдХреЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реБрдзрд╛рд░реЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдбреИрд╢> 1.1.0 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЙрди рдЬреНрдЮрд╛рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ:
рд╡рд┐рдзрд┐ 1:
app = dash.Dash(__name__, requests_pathname_prefix='/app_direct/dash-demo/')
рд╡рд┐рдзрд┐ 2:
app = dash.Dash(external_stylesheets=[dbc.themes.BOOTSTRAP],
suppress_callback_exceptions=True,
prevent_initial_callbacks=True,
requests_pathname_prefix='/app_direct/<appname>')
#app.config.update({
# # remove the default of '/'
# 'routes_pathname_prefix': '',
# # remove the default of '/'
# 'requests_pathname_prefix': ''
# })
рдореИрдВрдиреЗ __name__
рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдФрд░/рдпрд╛ external_stylesheets
. рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛
рдореИрдВрдиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ config.update
рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд┐рдирд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
app.config.update({
# remove the default of '/'
'routes_pathname_prefix': '',
# remove the default of '/'
'requests_pathname_prefix': '/app_direct/<appname>/'
})
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрд╢рд╛ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдШрдЯрдХ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ:
рдкреЙрд▓реАрдлрд┐рд▓@7.v1_6_0m1598451932.8.7.min.js
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛@16.v1_6_0m1598451932.13.0.min.js
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо@16.v1_6_0m1598451932.13.0.min.js
[email protected]_6_0m1598451932.7.2.min.js
рдбреИрд╢_рдмреВрдЯрд╕реНрдЯреНрд░реИрдк_рдШрдЯрдХ.v0_10_3m1598451933.min.js
рдмрдВрдбрд▓.v4_9_0m1598451932.js
Dash_html_components.v1_0_3m1598451932.min.js
Dash_core_components.v1_10_2m1598451932.min.js
Dash_core_components-shared.v1_10_2m1598451932.js
рдбреИрд╢_рд░реЗрдВрдбрд░рд░.v1_6_0m1598451932.min.js
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо@16.v1_6_0m1598451932.13.0.min.js
[email protected]_6_0m1598451932.7.2.min.js
рдбреИрд╢_рдмреВрдЯрд╕реНрдЯреНрд░реИрдк_рдШрдЯрдХ.v0_10_3m1598451933.min.js
рдмрдВрдбрд▓.v4_9_0m1598451932.js
Dash_html_components.v1_0_3m1598451932.min.js
Dash_core_components.v1_10_2m1598451932.min.js
Dash_core_components-shared.v1_10_2m1598451932.js
рдбреИрд╢_рд░реЗрдВрдбрд░рд░.v1_6_0m1598451932.min.js
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред
рдЕрджреНрдпрддрди: рдбреИрд╢ 1.17.0 рдФрд░ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА 2.4.1 рдиреЗ рдЪрд╛рд▓ рдЪрд▓реА рд╣реИред
рдмрд╕ рдЬрд░реВрд░рдд рд╣реИ:
server = flask.Flask(__name__)
app = dash.Dash(
__name__,
external_stylesheets=[dbc.themes.BOOTSTRAP],
suppress_callback_exceptions=True,
server = server,
requests_pathname_prefix='/app_direct/<appname>/'
)
рдореИрдВ рдбреИрд╢ 1.17.0 рдФрд░ ShinyProxy 2.4.1 рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕реБрдзрд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдбреИрд╢ рдбреЗрдореЛ рдбреИрд╢ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреИрд╢ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
https://github.com/openanalytics/shinyproxy-dash-demo
рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдФрд░ рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЕрджреНрдпрддрди: рдбреИрд╢ 1.17.0 рдФрд░ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА 2.4.1 рдиреЗ рдЪрд╛рд▓ рдЪрд▓реА рд╣реИред
рдмрд╕ рдЬрд░реВрд░рдд рд╣реИ:app = dash.Dash( __name__, external_stylesheets=[dbc.themes.BOOTSTRAP], suppress_callback_exceptions=True, server = server, requests_pathname_prefix='/app_direct/<appname>/' )
рдирдорд╕реНрддреЗ @jtpoirier
рдбреИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдХреБрдЫ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреИрд╢ рдХреЛ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рдорд╛рди рдорд╛рди рдХреЗ рд╕рд╛рде рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ:
routes_pathname_prefix
requests_pathname_prefix
рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдорд╛рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
/app_direct/<appname>/
рдЖрдкрдХреЛ рдбреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдРрдк рдХреА рдЖрдИрдбреА рд╕реЗ appname
рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдореНрди application.yml
рдлрд╝рд╛рдЗрд▓ рд╣реИ:
proxy:
title: Open Analytics Shiny Proxy
logo-url: https://www.openanalytics.eu/shinyproxy/logo.png
landing-page: /
heartbeat-rate: 10000
heartbeat-timeout: 60000
port: 8080
authentication: simple
admin-groups: scientists
users:
- name: jack
password: password
groups: scientists
- name: jeff
password: password
groups: mathematicians
docker:
cert-path: /home/none
url: http://localhost:2375
port-range-start: 20000
specs:
- id: dash-demo # Note: this is the id of the application
display-name: Dash Demo Application
port: 8050
container-cmd: ["python", "app.py"]
container-image: openanalytics/shinyproxy-dash-demo
рдлрд┐рд░ рдЖрд╡реЗрджрди рдХреА рдЖрдИрдбреА рд╣реИ dash-demo
, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдорд╛рди рдмрди рдЬрд╛рддрд╛ рд╣реИ:
/app_direct/dash-demo/
рддреЛ рдЖрдкрдХреЗ рдбреИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж рдирд┐рдореНрди рдкрд╛рдпрдерди рдХреЛрдб рд╣реЛрдЧрд╛:
app = dash.Dash(
__name__,
external_stylesheets=[dbc.themes.BOOTSTRAP],
suppress_callback_exceptions=True,
server = server,
requests_pathname_prefix='/app_direct/dash-demo/',
routes_pathname_prefix='/app_direct/dash-demo/'
)
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХрд╛рдордпрд╛рдмреА рдорд┐рд▓реЗ!
рдирдорд╕реНрддреЗ @jfrubioz
рд╣рдордиреЗ рдПрдХ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбреИрд╢ рдРрдкреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ ShinyProxy рдРрдк рдореЗрдВ рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ SHINYPROXY_PUBLIC_PATH
рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд░рдХрд╛рд░ /app_direct/dash-demo/
рд╣реЛрдЧрд╛ред
рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдбреИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдРрдк рдирд╛рдо рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
BTW: рд╣рдо рдЗрд╕ рдорд╛рди рдХреЛ рдХрд┐рд╕реА рднреА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗ рдмрд╛рдБрдзрдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ, рдлрд┐рд░ рд╕реЗ рдРрдкреНрд╕ рдХреЛ ShinyProxy рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
рддреЗрдЬрд╝ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдирд┐рдпреЛрдЬрд┐рдд рд╕реБрдзрд╛рд░ рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреАред
рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдбреИрд╢ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдбреИрд╢-рдбреЗрдореЛ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдХрд╛рд░рдгреЛрдВ рд╕реЗред "рд╕рд░реНрд╡рд░" рдХреЛ рдбреИрд╢-рдбреЗрдореЛ app.py рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред рдЕрдЧрд░ рдЙрд╕ рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдРрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдХрдВрдЯреЗрдирд░ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордп рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрдЧрд╛ред рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдбреИрд╢-рдбреЗрдореЛ рдЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ w/рдбреИрд╢ 1.1ред
Running on http://0.0.0.0:8050/app_direct/dash-demo/
Debugger PIN: 394-772-284
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
Running on http://0.0.0.0:8050/app_direct/dash-demo/
Debugger PIN: 807-835-959
@jtpoirier
рд╣рд╛рдВ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВрдиреЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ server = flask.Flask(__name__)
рд▓рд╛рдЗрди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдлреНрд▓рд╛рд╕реНрдХ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ @LEDfan рдиреЗ рд╕рдордЭрд╛рдпрд╛, рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ '/app_direct/dash-demo/' рдХреЛ рдЖрдкрдХреЗ 'requests_pathname_prefix' рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ 'routes_pathname_prefix' рдореЗрдВ рднреА рдбрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдкрд╛рдпрдерди рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
app = dash.Dash(
__name__,
external_stylesheets=[dbc.themes.BOOTSTRAP],
suppress_callback_exceptions=True,
server = flask.Flask(__name__),
requests_pathname_prefix='/app_direct/dash-demo/',
)
if __name__ == '__main__':
app.run_server(
#make sure you have the right host address
#host = '0.0.0.0',
)
рдирд╡реАрдирддрдо рдбреИрд╢-рдбреЗрдореЛ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде 'app=dash.Dash ()' рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред рдлрд┐рд░ рд╕реЗ рд╕рд░реНрд╡рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЪрд▓реЗрдЧрд╛ рд▓реЗрдХрд┐рди рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдкрд░ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ application.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдРрдк рдХреА рдЖрдИрдбреА 'рдбреИрд╢-рдбреЗрдореЛ' рд╣реИред
import flask
app = dash.Dash(
__name__,
suppress_callback_exceptions=True,
server=flask.Flask(__name__),
requests_pathname_prefix='/app_direct/dash-demo/'
)
if __name__ == '__main__':
app.run_server(debug=True, host = '0.0.0.0')
рдореИрдВ рдЕрдм рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди> 1.1 рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдФрд░ рдбреИрд╢ рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ рдЕрдм рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЛ рдбреИрд╢-рдбреЗрдореЛ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
рд╣рд╛рдп @jtpoirier , рдмрдврд╝рд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ!
@jfrubioz рд╣рдордиреЗ ShinyProxy 2.5.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЕрдм SHINYPROXY_PUBLIC_PATH
рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдбреЗрдореЛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рдбреИрд╢ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдЪреВрдВрдХрд┐ рдпрд╣ рдЕрдм рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдЕрдм рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди> 1.1 рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдФрд░ рдбреИрд╢ рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ рдЕрдм рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЛ рдбреИрд╢-рдбреЗрдореЛ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред