How to serve Flask static files using Nginx?

From How to Configure NGINX for a Flask Web Application

I found this solution to be better:

location /static  {
    alias /<path to project>/static;
}

Replace <path to project> with your project's directory, of course.

Note in this solution that static is included in the path! This is really good for security! The risk of accidentally serving application source files is reduced. By default flask puts the source files in the <path to project> and a small mistake in configurations could make these source files visible to attackers.


Add this to your nginx configuration

location ^~ /static/  {
    include  /etc/nginx/mime.types;
    root /project_path/;
}

replace /project_path/ with your app's absolute path, you should note that it doesn't include static directory and all the contents inside /project_path/static/ will be serverd in url /static/.