参考文章:腾讯云社区: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就可以了。