Py学习  »  Django

Nginx子目录上的Django重定向到根目录

simernes • 6 年前 • 2463 次点击  

我有Django 2.2,我想把它提供给 http://myserver.com/application

如果我尝试转到myserver.com/application/admin,就会立即重定向到myserver.com/admin。

这是我应该在Nginx或Django中指定的设置,以避免出现这种情况吗?Django正在gunicorn中运行,请参见Nginx.conf:

location /static {
        alias /home/simernes/workspace/django_server/env/static;
    }

location /application {
        proxy_pass                http://localhost:8000/;
        proxy_redirect            off;
        proxy_set_header          Host               $host;
        proxy_set_header          X-Real-IP          $remote_addr;
        proxy_set_header          X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header          X-Forwarded-Proto  http;
        proxy_buffer_size         128k;
        proxy_buffers             8 128k;
        proxy_busy_buffers_size 256k;
    }

最后,这就是my urls.py在项目文件夹“backend”中的样子:

from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include

FORCE_SCRIPT_NAME="/application"
STATIC_ROOT="/home/simernes/workspace/django_server/env/static/"
app_name='backend'
urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^', include('api.urls', namespace='api')),
]

此外,当我转到myserver.com/application的根目录时,会得到一个错误404 not found,并且:

Using the URLconf defined in backend.urls, Django tried these URL patterns, in this order:

    admin/
    ^ auth$ [name='auth']

The current path, /, didn't match any of these.

这不是我所期望的,因为我正在配置以显示我的api应用程序中可用的url(参见下面的url.py),但这不是我主要关心的问题,所以我只是将其包含在更广泛的上下文中。

我还有一个名为api的应用程序文件夹,其中还包含url,它包含在后端:

from django.conf.urls import url
from rest_framework.authtoken import views as drf_views

app_name="api"
urlpatterns = [
        url(r'auth$', drf_views.obtain_auth_token, name='auth'),
]

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54564
文章 [ 1 ]  |  最新文章 6 年前
Iain Shelvington
Reply   •   1 楼
Iain Shelvington    7 年前

你还需要重写 LOGIN_URL , STATIC_URL , LOGIN_REDIRECT_URL