Django -> debug模式下的静态文件服务(/media/)

Posted liguangsunls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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内置的调试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/)的主要内容,如果未能解决你的问题,请参考以下文章

010:DEBUG模式详解

Win7环境下Apache+mod_wsgi本地部署Django

Django提供静态文件服务

07-Django视图进阶

Django本地开发,debug模式引用静态文件

媒体文件未在 DEBUG=False Django 2.2.6 中显示