1. 程式人生 > >Django -> debug模式下的靜態文件服務(/media/)

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

相同 pytho web容器 文件服務 document mat clas str location

正式公布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內置的調試server時,相同須要指定靜態文件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規則到文件系統的映射

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