在 Elastic Beanstalk 中提供生成的静态文件

在 Elastic Beanstalk 中提供生成的静态文件

我有一个SailsJS我正尝试按照亚马逊的NodeJS 教程

我的网站可以访问,但是所有静态文件(css、js、图像)的请求都得到了 404 响应。

显然有两种方法可以解决这个问题:

1. 使用 SailsJS 提供文件

npm start这是我启动服务器的命令,使用以下命令在本地提供这些文件Express 的静态中间件这在我的计算机上运行良好。在服务器上,这些请求出现在 nginx 的访问日志中,但它们没有到达我的 NodeJS 应用程序。它们去哪里了?

2.使用 nginx 代理服务器提供文件

默认情况下npm start,(或sails lift)会运行将静态文件从 移动assets到所需的任何脚本.tmp/public,这些文件应从 提供。要根据教程使用 nginx 提供这些文件,我需要将它们添加到文件中.ebextensions/staticfiles.config,现在该文件如下所示:

option_settings:
  aws:elasticbeanstalk:container:nodejs:staticfiles:
    /dependencies: /.tmp/public/dependencies
    /docs: /.tmp/public/docs
    /images: /.tmp/public/images
    /js: /.tmp/public/js
    /min: /.tmp/public/min
    /favicon.ico: /.tmp/public/favicon.ico

我试过了:

  • 将静态文件从 移动.tmp/publicstatic因为我认为隐藏文件夹.tmp无法被 nginx 访问
  • 检查文件static夹,这可行,但将其添加到文件夹.gitignore并删除似乎会导致它不起作用。

它真的似乎比如 nginx 会忽略在 NodeJS start 命令运行后生成的文件。我该如何提供自动生成的静态文件?

相关内容