我是Elastic Beanstalk的新手,尝试提供Node.js Express应用程序,并利用Nginx单独提供静态文件。我遇到的所有教程都没有明确说明如何定义虚拟路径。
我试图通过浏览器中的AWS控制台执行此操作。我正在尝试为静态文件添加虚拟路径/目录设置。在控制台我在
Elastic Beanstalk > myapp > configuration > Static Files
我也尝试添加完整的目录路径(/var/app/current/dist/public/images/
)。我需要添加另一个.ebextensions/*.conf
文件吗?我没有很多Nginx的经验,所以如果修复是一个.conf
文件,我不知道它是什么
这是一个已知的错误,它们只在Web控制台上支持python。如果您的应用程序在nodejs中,则需要从cli设置这些属性。
你可以用这种方式设置cli的值
aws elasticbeanstalk update-environment --environment-id your_enviornment_id --option-settings 'Namespace=aws:elasticbeanstalk:container:nodejs:staticfiles,OptionName=/assets,Value=/static/assets'
或者从eb config
编辑配置文件。
Kashif Zaidi的答案很有效,但是如果你想在多个部署中保持设置一致,你可以在项目根目录下创建一个.ebextensions
目录,其中有一些像01_environment_settings.config
这样的文件,它指定了这样的设置:
option_settings:
aws:elasticbeanstalk:container:nodejs:staticfiles:
"/assets": "/static/assets"
您可以指定多个静态文件设置,例如:
option_settings:
aws:elasticbeanstalk:container:nodejs:staticfiles:
"/app/": "frontend_build/"
"/static/": "frontend_build/static/"
"/backend_static": "static/"