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规则到文件系统的映射

Django -> debug模式下的静态文件服务(/media/),布布扣,bubuko.com

时间: 2024-10-26 02:48:38

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

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/dijk

Django提供静态文件服务

Django为了方便开发调试,debug模式下runserver会利用django.contrib.staticfiles应用自动部署资源服务,但是生产模式下(或Debug=True时),如果还想要Django提供资源服务,就必须明确提供资源相关的配置,使其承担资源服务.以下是两种使用Django提供资源服务的配置方式,推荐使用这一种,发布生产环境后,可以使用nginx提供静态资源服务,Django只做动态内容服务. 第一种形式:1.项目设置中配置(settings.py) STATIC_ROO

log4net在release模式下无法生成文件或不写入日志

在Debug模式一切正常,但是在release模式下log4net不工作,查了很多资料,终于解决.具体做如下检查修改. 1.检查log4net写入日志文件路径是否正确: 2.检查对应日志文件路径是否有权限: 3.检查程序log4net配置获取路径: 最常见的问题是第三步,一般都是在AssemblyInfo.cs文件中写入如下代码 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Config

Debug模式下编译溢出问题

问题: 代码在Debug模式下编译报出内存溢出的错误,而Release模式下则没有. 由于Debug模式下包含调试信息,并且不作任何优化.而Release模式进行了各种优化,内存检测等操作均省去,使得程序在代码大小和运行速度上都是最优的. 方法1: 猜测Release对代码进行了优化或者根本就没有进行内存检测,才导致Release模式下编译通过的.于是我进行了代码缩减,删除没有用的变量,问题仍然没有解决. 方法2: 我发现在Debug模式下,main.c文件淡黄色, ,Release模式下仍然为

eclipse的debug模式下启动不了tomcat

使用eclipse启动tomcat,正常模式下可以启动tomcat,却在debug模式下无法启动tomcat. 这个问题可能是由于eclipse和tomcat的交互而产生的,在以debug模式启动tomcat时,发生了读取文件错误,eclipse自动设置了断点,导致tomcat不能正常启动. 解决方法把breakpoints veiw都删除就好了,步骤如下:window->show view->Breakpoints.在Breakpoints视图中右键,Remove all

Android studio build.gradle配置,debug模式下使用正式版签名,重命名apk

在build.gradle文件中,android节点下进行配置. android { compileSdkVersion 22 buildToolsVersion '22.0.1' signingConfigs { release { keyAlias 'xxx' keyPassword 'xxxxxxxxxxxx' storeFile file('./xxx.keystore') storePassword 'xxxxxxxxxxxxxxxx' } config { keyAlias 'xxx

引入 Tinker 之后如何在 Debug 模式下开启 Instant Run

在<Tinker + Bugly + Jenkins 爬坑之路>一文中讲了在接入 Tinker 之后,Jenkins 中的一些坑,由此,热修复算告一段落,但是,在直接 Run 模式运行时,程序会报出如下错误: Tinker does not support instant run mode, please trigger build by assembleDebug or disable instant run in 'File->Settings...'. 好吧,使用 TInker 时

DEBUG模式下, 内存中的变量地址分析

测试函数的模板实现 [cpp] view plain copy /// @file my_template.h /// @brief 测试数据类型用的模板实现 #ifndef MY_TEMPLATE_H_2016_0123_1226 #define MY_TEMPLATE_H_2016_0123_1226 template<int iArySize> void fnTestDataType() { char szBuf[iArySize] = {'\0'}; unsigned short wT

eclipse在debug模式下自动跳到ThreadPoolExecutor解决方案

困扰了很长时间的一个问题,以前没有自己研究,今天终于解决了. 使用eclipse时,如果tomcat设定的是热加载,当修改一些程序后,tomcat自动加载修改内容..... 但是很多次都会自动跳到debug模式,很是讨厌... 原因是eclipse的设置问题:默认[Suspend execution on uncaught exceptions]是选中的,则eclipse在遇到未捕获的异常时会停止..... 修改方法,就是去掉选中的checkbox即可 参考文章:http://hi.baidu.