django静态资源问题

开发环境下

开发环境下 即settings.py中的配置项 DEBUG = True的情况。
这种情况下,django会默认帮我们处理静态文件会帮我们处理一些事情。
我们只需要少数配置即可

固定配置项
settings.py
配置静态资源的起始URL

# url访问地址如:localhost://static/1.png
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    # 静态资源存储的目录,比如我的是根目录下的 public_static
    os.path.join(BASE_DIR, 'public_static'),
]

生产环境下

DEBUG = False的话还需要我们额外做一件事
固定配置项
settings.py
配置静态资源的起始URL

# url访问地址如:localhost://static/1.png
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "public_static") # 静态资源绝对目录地址

配置路由映射
urls.py

from django.views import static
from django.conf import settings
from django.conf.urls import url
urlpatterns = [
    path('admin/', admin.site.urls),
    ...
    url(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT}), # 重点是这一行
]

测试验证

浏览器访问即可:http://127.0.0.1:8000/static/xxx

参考

https://my.oschina.net/swrite/blog/168561

原文地址:https://www.cnblogs.com/dshvv/p/15411150.html