MEDIA_ROOT与STATIC_ROOT静态文件配置
MEDIA_ROOT主要是用于用户上传目录。
STATIC_ROOT用于网站的静态文件
【转载】
Django提供了一个方法自动地将所有的静态文件放在一起。只要在写App的时候创建一个static子目录专门保存静态文件就行了。在开发阶段,不必费心去做映射,不需要配置urls.py
。在布署到生产环境的时候,只需要配置Apache把/static/
映射到STATIC_ROOT
。然后运行manage.py collectstatic
,自动地STATICFILES_DIRS
列出的目录以及各个App下的static子目录的所有文件复制到STATIC_ROOT。因为复制过程可能会覆盖掉原来的文件,所以,一定不能把我们辛苦做出来静态文件放这边!在开发阶段,Django把/static
映射到django.contrib.staticfiles
这个App。staticfiles
自动地从STATICFILES_DIRS
、STATIC_ROOT
以及各个App的static
子目录里面搜索静态文件。一旦布署到开发环境上,settings.py不需要重新编写,只要在Apache的配置文件里面写好映射,/static
将会被Apache处理。django.contrib.staticfiles
虽然仍然存在,但因为不会接收到以/static/
开始的路径,所以将不会产生作用。不必担心Django会使用处理速度变慢。另外,当settings.DEBUG is False
的时候,staticfiles
将自动关闭。
自己写的博客静态文件URL设置:
HERE = os.path.dirname(os.path.abspath(__file__)) 用于取出settings.py所在文件夹的位置
MEDIA_ROOT = os.path.join( HERE, 'media').replace('\\','/')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join( HERE, 'static').replace('\\','/')
STATIC_URL = '/static/'
url设置:
urlpatterns += patterns((''),
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
),
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步