Django 部署到服务器时遇到的问题以及404,500自定义
项目场景:
最近在写一个小项目,写到一定程度后想设置404,500等自定义的页面,但要使用自己的页面,就得Debug=False,在这里遇到了一些问题,记录下
问题描述:
问题1,static文件访问有问题
提示:这里描述项目中遇到的问题:
关闭debug模式时,static有大部分的css和image文件无法访问:


问题2,自定义404和500无法被访问
自定义的404和500都放在这个文件夹,但是

#在urls.py中,相应的方法也写好
handler404 = lfh.views_login.page_not_foundhandler500 = lfh.views_login.page_error

最后得到的是:

解决方案:
问题 1的原因,部署服务器时内部的文件是无法被访问的,出来定义好的media和static这种静态文件夹之外,刚开始设置static时就写了一句话,并没有像写meida那样,在urls.py中写好相应的访问路径和权限
setting.py中:
STATIC_URL = '/static/' # HTML中使用的静态文件夹前缀
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"), # 静态文件存放位置
]# 配置media路径,保存用户文件
MEDIA_ROOT = (os.path.join(BASE_DIR, "media"))
MEDIA_URL = '/media/'
urls.py:
from django.conf import settings
from django.conf.urls import url, static
from django.contrib import admin
from django.urls import path, include, re_path
from django.views.static import serveurlpatterns = [path('admin/', admin.site.urls),path('', include('lfh.urls')),url(r'^static/(?P.*)$' , static.serve,{'document_root': settings.STATIC_ROOT}, name='static'),# 注册媒体文件re_path(r'media/(?P.*)$' , serve, {"document_root": settings.MEDIA_ROOT}),
]
这样绑定后,Debug=True能访问的static,在部署后也可以访问了
至于问题2,主要原因,在看了很多博客后总结了一下:看似有很多种调用的方法, 不管写法如何骚气,最终还是有一点,必须在templates文件夹根目录下创建,连名字都得是404.html之类的

而errors里的。。。真的无力回天了,而且自己写好的方法也毫无用处,只要把网页名字改好就可以访问了

即使把这些玩意注释了也没关系,因为在发生404时,templates底层会默认去templates文件夹根目录去找相应的html是否存在,如果存在就使用自定义的404页面和500页面

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
