我有一个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/public
到static
因为我认为隐藏文件夹.tmp
无法被 nginx 访问 - 检查文件
static
夹,这可行,但将其添加到文件夹.gitignore
并删除似乎会导致它不起作用。
它真的似乎比如 nginx 会忽略在 NodeJS start 命令运行后生成的文件。我该如何提供自动生成的静态文件?