我正在使用NodeJS的单实例ElasticBeanstalk,我正在尝试配置Nginx代理来提供我的静态文件(目前,我的Express服务器正在提供静态文件) . 但是,对于我的生活,我无法让它发挥作用 .
现在,我的静态资产位于EB实例的 /var/app/current/server/public
中 . EB提供 /var/app/current
文件夹 . server/public
我的构建结果 . 如果它有帮助,Express使用以下代码提供我的静态文件:
app.use(express.static('public'));
这很有效 . 现在,为了使Nginx服务于这些,我删除了我的Express服务器中的上述行,并在我的 .ebextensions
文件夹中添加以下EB配置,以将虚拟路径映射到相应的目录 . 然后我部署:
staticfiles.conf
option_settings:
aws:elasticbeanstalk:container:nodejs:staticfiles:
/js: /server/public/js
/css: /server/public/css
/images: /server/public/images
/scripts: /server/public/scripts
这不起作用 . 在请求像 https://example.com/css/main.css
或 https://example.com/js/index.js
这样的文件时,我得到了404 . 当我从Express提供资产时,这些路径完全相同 .
我试过玩斜杠(添加斜杠,删除前导斜杠)无济于事 . 我还确认这些设置通过UI进行EB配置 .
我错过了什么?!