Django访问地址不会自动加斜杠问题
分类:
入门到放弃
日期: 2024-02-17 | 作者: admin
| 浏览:
113
开发环境,Debug = True,一切都正常访问。
部署到云上后,Debug = False。
访问https://mysite.cn/admin 直接提示404错误,
访问 https://mysite.cn/admin/ 能正常显示,就差一个 / 。
本来以为是NGINX配置问题,还折腾了N久,但问题还是一样未解决。
然后Django默认的APPEND_SLASH参数设置了也同样无效。
后来找到篇文章,https://devpress.csdn.net/cloud/63050881c67703293080e9a1.html ,原来是status_code配置的问题,函数返回status成200了,而不是404和500导致。
项目urls.py
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
]
# 配置404和500页面
handler404 = views.error_404
handler500 = views.error_500
app里的views.py
# 404错误, 原来未添加status=404,导致status成200,不会自动加/
def error_404(request, exception):
return render(request, 'myapp/404.html', status=404)
# 500错误,原来未添加status=500,导致status成200,不会自动加/
def error_500(request):
return render(request, 'myapp/500.html', status=500)
增加404和500的函数返回状态码,重启服务后一切都正常了~~~
相关文章