Django -> debug模式下的靜態文件服務(/media/)

正式發佈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規則到文件系統的映射

原文鏈接:http://www.tuicool.com/articles/2EfmQz
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章