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}
),