如何在 Nginx 中为 Django 应用程序指向静态文件夹

如何在 Nginx 中为 Django 应用程序指向静态文件夹

我在 AWS 服务器中部署了一个简单的 Django 应用程序,并在 Nginx 中创建了一个配置文件,如下所示。但其静态文件未检测到。我的静态文件夹位置:/path/static。

此应用程序通过 URL HTTP://public_ip/static 检查静态文件,但我需要在 HTTP://public_ip/portal 这个 URL 中实现相同

                  server {
                     listen 80;
                     server_name 127.0.0.1;
                     location /portal {
                     include proxy_params;
                     proxy_pass http://localhost:8000/en;
                        }
                    }

答案1

您需要有以下server配置:

server {
    listen 80;
    server_name 127.0.0.1;

    location ~ /portal(?<djangouri>.*) {
        alias /home/ubuntu/en/static;

        try_files $uri $uri/ @django;
    }

    location @django {
        include proxy_params;

        proxy_pass http://localhost:8000/en$djangouri;
    }
}

第一个location块检查路径中是否存在文件,并提供该文件。如果不存在文件,则请求将传递给 django。

相关内容