从 Nginx 提供静态内容,但在 Django 中处理错误页面
Serving Static content from Nginx but handling error pages in Django
我的静态和媒体文件由 Nginx 提供,其他请求由 Django 提供。
我有一个由 Django 提供的自定义 404 页面。由于 Nginx 正在处理静态内容,任何对 /static/* 抛出 404 的请求也由 Nginx 处理。我可以在 Nginx 中设置静态自定义 404 页面,但我希望 Django 处理任何 404。
是否可以从 Nginx 提供静态内容,但在 404 的情况下,请求会转发到 Django?
假设您已经定义了 django 代理通行证
upstream django_server {
server 127.0.0.1:8000;
}
那你可以这样做
location /static/ {
try_files $uri @django;
....
}
location @django {
proxy_pass django_server;
}
我的静态和媒体文件由 Nginx 提供,其他请求由 Django 提供。
我有一个由 Django 提供的自定义 404 页面。由于 Nginx 正在处理静态内容,任何对 /static/* 抛出 404 的请求也由 Nginx 处理。我可以在 Nginx 中设置静态自定义 404 页面,但我希望 Django 处理任何 404。
是否可以从 Nginx 提供静态内容,但在 404 的情况下,请求会转发到 Django?
假设您已经定义了 django 代理通行证
upstream django_server {
server 127.0.0.1:8000;
}
那你可以这样做
location /static/ {
try_files $uri @django;
....
}
location @django {
proxy_pass django_server;
}