Eu tenho um aplicativo SailsJS que estou tentando implantar no Elastic Beanstalk seguindo os tutorial do NodeJS .
Meu site aparece, mas todas as solicitações de arquivos estáticos (css, js, imagens) estão sendo respondidas com o recurso 404.
Há aparentemente duas maneiras de fazer isso, que são:
npm start
, que é o meu comando para iniciar o servidor, serve esses arquivos localmente usando o middleware estático do Express e isso funciona lindamente na minha máquina. No servidor, essas solicitações aparecem no log de acesso do nginx, mas não chegam ao meu aplicativo NodeJS. Para onde estão indo?
Por padrão, npm start
(ou sails lift
) executa o script necessário para mover os arquivos estáticos de assets
para .tmp/public
, que é onde eles devem ser exibidos. Para servir esses arquivos com o nginx de acordo com o tutorial, eu preciso adicioná-los ao arquivo .ebextensions/staticfiles.config
, que agora se parece com:
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
Eu tentei:
.tmp/public
para static
porque achei que a pasta oculta .tmp
estava inacessível por nginx static
, que funciona, mas adicioná-la ao .gitignore
e excluí-la parece fazer com que isso não funcione. Realmente parece que o nginx ignora os arquivos que foram criados depois que o comando start do NodeJS foi executado. Como posso servir meus arquivos estáticos gerados automaticamente?
Tags nginx amazon-web-services