我正在使用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.csshttps://example.com/js/index.js 这样的文件时,我得到了404 . 当我从Express提供资产时,这些路径完全相同 .

我试过玩斜杠(添加斜杠,删除前导斜杠)无济于事 . 我还确认这些设置通过UI进行EB配置 .

我错过了什么?!