我正在使用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提供资产时,这些路径完全一样。
我尝试使用斜杠(添加斜杠,删除前斜杠)无济于事。我还确认了这些设置可以通过用户界面将其设置为EB配置。
我想念什么?!