jcD*_*nas 5 django nginx django-admin
我必须从子目录(主机名/服务/)中提供一个 Django 应用程序。到目前为止,我能够进入管理员登录提示 (hostname/service/admin/login/?next=/admin/),但在成功登录后我被重定向到 (hostname/admin/login/) 并获得a 404.
如何保留正确的子目录并进入管理面板?
这是 nginx.conf 服务器块:
server {
listen 80;
root /usr/share/nginx/html/;
charset utf-8;
location /service {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://djangoapp:8000/;
proxy_set_header X-Real-IP $remote_addr;
}
location /static {
alias /usr/src/app/static;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:这些是来自 urls.py 的 urlpatterns:
from django.conf.urls import url, include
from django.contrib import admin
# A custom view of my own
from app.views import AdvanceCustomSearchView
urlpatterns = [
url(r'^search/$', AdvanceCustomSearchView(), name='index_search'),
url(r'^app/', include('app.urls')),
url(r'^admin/', admin.site.urls),
]
Run Code Online (Sandbox Code Playgroud)
您需要将FORCE_SCRIPT_NAME设置添加到您的settings.py如下:
FORCE_SCRIPT_NAME = '/service'
Run Code Online (Sandbox Code Playgroud)
请注意,末尾没有斜杠。
| 归档时间: |
|
| 查看次数: |
1269 次 |
| 最近记录: |