- Django设置 DEBUG=False后,所有的static文件无法访问
- 当我们在开发django应用时如果设置了 DEBUG = True,那么django便会自动帮我们对静态文件进行路由;但是当我们设置DEBUG = False后,这一功能便没有了,此时静态文件就会出现加载失败的情况,想要让静态文件正常显示,我们就需要配置静态文件服务了
- 解决方法
- 设置文件添加静态文件路径
STATIC_URL = '/static/'
STATIC_ROOT ='static'
- 修改urls.py
from django.views import static
from django.conf import settings
from django.conf.urls import url
urlpatterns = [
path('', include('user.urls')),
url(r'^static/(?P<path>.*)$', static.serve,
{'document_root': settings.STATIC_ROOT}, name='static'),
]
- 按上面方法修改完还是前端还是报错,解决方法如下:
import mimetypes
mimetypes.add_type("text/css", ".css", True)
mimetypes.add_type("text/javascript", ".js", True)
- 由于增加url白名单中间件,所以在未登录前static请求会被全部拒绝 所以要增加验证判断
if request.path_info in settings.WHITE_REGEX_URL_LIST or (request.path_info).split("/")[1] == 'static':
return
if not request.tracer.user:
return redirect('/web/login/')