如何使用Nginx提供Flask静态文件?

Mad*_*dno 18 python nginx flask

我有一个这种结构的Web应用程序:

|
|__ static
   |__style.less
   |__images
|__ myapp.py
|__ wsgi.py
Run Code Online (Sandbox Code Playgroud)

我已经设法使用nginx和wsgi运行Web应用程序,但问题是静态文件没有提供,我的意思是,当我转到他们的URL时服务器找不到它们.它给了我404.

这是我的nginx配置文件部分:

 server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/public_html;
    index index.php index.html index.htm;

    server_name xxxxxxx.com;

    location / {
        try_files $uri $uri/ =404;
    }

    location /myapp {
        include uwsgi_params;
        uwsgi_pass unix:/var/www/public_html/myapp/myapp.sock;
}
Run Code Online (Sandbox Code Playgroud)

有什么遗失的吗?

Viv*_*k R 27

将其添加到您的nginx配置中

location ^~ /static/  {
    include  /etc/nginx/mime.types;
    root /project_path/;
}
Run Code Online (Sandbox Code Playgroud)

/project_path/用你的应用程序的绝对路径替换,你应该注意它不包括静态目录,里面的所有内容 /project_path/static/都将在url中服务/static/.

  • https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#root-inside-location-block (3认同)
  • ^~ 有什么作用? (2认同)