[英]Deploy Dash with assets folder to AWS Elastic Beanstalk
我想知道是否有人能够就如何将 Dash 应用程序上传到弹性 beantalk 向我提出建议。
我从各种人的博客中了解到,以确保我需要:
application = app.server
if __name__ == '__main__':
application.run_server(debug=True,port=8080)
然后我需要使用 pip freeze > requirements.txt 冻结需求并压缩所有文件并上传到 AWS Elastic Beanstalk。 在所有的解释中,他们有非常简单的应用程序,只有一个文件,没有包含 css 文件的“资产”文件夹或没有连接的数据库
我想知道当你有一个包含各种图像和样式等的 css 文件夹的资产文件夹时,这个过程是什么。我还连接了一个 RDS 数据库,该数据库已经使用 sqlalchemy 的 URI 设置。 该应用程序在我的本地机器上运行完美。 我尝试压缩每个单独的文件,但没有奏效,我变得非常绝望。 我知道 Dash 会查找“资产”文件夹。 结构如下:
非常感谢您提前提供帮助。 如果有人可以强调我需要做的确切步骤,我将非常感激。 我对此很陌生。
问候
我有一个相同的问题,这是我解决它的方法。 默认情况下,Dash 会自动提供./assets
文件夹中包含的./assets
文件。 相反,AWS Elastic Beanstalk 上的网络服务器希望您的 CSS 和其他文件放置在./static
文件夹中。
您可以为 AWS Elastic Beanstalk 创建一个配置文件来为您的静态文件设置配置选项。 我采取了另一种方法:
将资源的文件夹名称从assets更改为static 。
当您声明 Dash 应用程序时更新您的 Python 代码:
app = dash.Dash(name=__name__, title="My App", assets_folder ="static", assets_url_path="static")
像往常一样部署您的应用程序 - AWS Elastic Beanstalk 将从静态文件夹获取资源并为它们提供服务。
我的最终应用程序具有以下结构:
static/
favicon.ico
logo.png
style.css
application.py # by default, AWS Elastic Beanstalk expects this app name
requirements.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.