正式發佈django項目的時候,如果存在靜態文件(一般會統一放在名稱爲media或static的目錄下),則需要建立url到文件系統的映射,例如,使用nginx的時候我們需要進行這樣的配置.
# Django media location /media { alias /home/lyndon/github/Mathematician/dijkstra/media; } location /static { alias /home/lyndon/github/Mathematician/dijkstra/static; }
然後把頁面的請求轉發到web容器
因此,當使用django內置的調試服務器時,同樣需要指定靜態文件url和文件系統之間的映射關係.
修改url,添加靜態文件的url規則
urlpatterns = patterns('', # Examples: # url(r'^$', 'catyblog.views.home', name='home'), url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
修改settings.py,添加MEDIA_URL, MEDIA_ROOT
MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
如此以來,便可在css文件或者html文件中直接以這樣的方式使用靜態文件
background-image: url('/media/img/bg.jpg');
總結
static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
只有在debug模式下才有作用.
它的功能只是實現了從url規則到文件系統的映射