部署问题
线上部署时因设置了 settings.DEBUG = False 会导致静态文件都是 404 的情况。主要原因是应为关闭DEBUG模式后,Django 便不提供静态文件服务了
设置settings.py
cmd
STATIC_ROOT = os.path.join(BASE_DIR, 'test_web')
执行django转移静态文件命令
cmd
python manage.py collectstatic
启动服务
cmd
python manage.py runserver 0:8000
访问服务会发现许多静态文件无法链接访问,控制台报错404。
解决方法
在urls.py中添加代码,如下:
python
from django.contrib import admin
from django.urls import path
from django.urls import include, path,re_path
from django.views.static import serve
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
...,
re_path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),
]