如何在弹性豆茎上使用Django提供Reaction应用程序? [英] How to Serve a React App with Django on Elastic Beanstalk?
本文介绍了如何在弹性豆茎上使用Django提供Reaction应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我过去在Heroku上有我的应用程序,它在那里的工作方式是我有2个构建包。一个用于NodeJS,一个用于Python。Heroku运行npm run build
,然后Django提供build
文件夹中的文件。
每当我的GitHub存储库有新的推送时,我都会使用AWS上的代码管道来部署我的应用程序的新版本。
因为我不知道如何在EB的python环境中运行npm run build
,所以我有一个变通办法。我运行npm run build
并将其推送到我的存储库(从.gitignore中删除了build
文件夹),然后Django在EB上提供文件。
然而,这不是最好的解决方案,我想知道是否有人知道如何运行npm run build
,就像Heroku在EB上为Python应用程序运行NodeJS构建包一样。
推荐答案
所以我想出了一个适合我的解决方案。
由于我希望以Heroku使用NodeJS构建包的方式在服务器上创建应用程序的构建版本,因此我必须创建一个命令来安装节点,如下所示:
container_commands:
01_install_node:
command: "curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - && sudo yum install nodejs"
ignoreErrors: false
然后要在Python Environment EB上创建Reaction应用程序的构建版本,我添加了以下命令:
container_commands:
02_react:
command: "npm install && npm run build"
ignoreErrors: false
当然,在创建内部版本之后,您应该收集静电文件,下面是我的工作配置文件在结尾的样子:
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: <project_name>/wsgi.py
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: <project_name>.settings
aws:elasticbeanstalk:container:python:staticfiles:
/static/: staticfiles/
container_commands:
01_install_node:
command: "curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - && sudo yum install nodejs"
ignoreErrors: false
02_react:
command: "npm install && npm run build"
ignoreErrors: false
03_collectstatic:
command: "django-admin.py collectstatic --noinput"
希望这能帮助任何遇到相同🙂的人
这篇关于如何在弹性豆茎上使用Django提供Reaction应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文