Django静态资源404问题

故障处理 / 2021-04-22

参考文章:腾讯云社区:kirin《解决django部署后静态文件404问题》,链接:https://cloud.tencent.com/developer/article/1625760

今天部署招聘管理系统时,遇到了静态资源404 Not Found的问题,折腾了好久,终于解决了,记录下来方便以后查阅。

首先原因是因为禁止了DEBUGDEBUG = False,所以导致找不到静态资源,但是生产环境是必须要关闭DEBUG的,所以我们需要找给Django开设一条路由来解决此问题。

settings配置如下所示:

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, "static")

urls配置如下所示:

from django.urls import path, re_path
from django.views.static import serve
from settings.base_settings import STATIC_ROOT

urlpatterns = [
    path('admin/', admin.site.urls),
    path('joblist/', views.joblist),
    # 这是固定写法,除了document_root的值STATIC_ROOT是我自定义的
    re_path('^static/(?P<path>.*)', serve, {'document_root': STATIC_ROOT}),
]

然后重启你的托管服务如gunicorn,没有的话就直接重启Django就可以了。

世间微尘里 独爱茶酒中