I\'m now deploying an django app with nginx and gunicorn on ubuntu 12.
And I configure the nginx virtual host file as below:
server {
listen 80;
TL;DR - you should check your files permissions
Stumbled upon this question and I was already using alias instead of root, so while the existing answer was up to the point, the following could be useful to others.
In my case, the solution to the same symptoms turned out to be the files in static/ having root as owner.
A simple chown www-data:www-data . solved the problem, and no more 404.