调试模式打开时的 Django 和静态文件

Posted

技术标签:

【中文标题】调试模式打开时的 Django 和静态文件【英文标题】:Django & static files while Debug mode is ON 【发布时间】:2011-10-26 20:15:16 【问题描述】:

当 Debug 设置为 True 时,模板中的静态文件(图像)有些问题:图像不显示。 这是一些设置和模板的代码:http://dpaste.com/594183/

使用这些设置,打印的 html 不包含静态文件的正确路径。无论如何,我记得前段时间即使使用正确的路径图像也没有显示,所以问题可能不在于路径。

谢谢,卢克

【问题讨论】:

【参考方案1】:

您将静态文件放在哪里? 在新的 Django 中,您应该将它们保留在您的应用程序中,例如如果您有一个名为“博客”的应用程序,请创建一个目录 blog/static 并将您的文件放在那里。 调试服务器(manage.py runserver)将在 localhost/static/ 为它们提供服务。

【讨论】:

【参考方案2】:

看到您的粘贴时首先想到的是在您的路径中插入了一个空格。在 CSS 背景图像的 url 中,上下文变量 STATIC_URL 和硬编码路径之间有一个空格。小心 django 中的空格,它的模板引擎会对它们非常敏感,并且通常不会为你清理它们。一种这样的情况是 value|length ,如果您在管道周围插入空格,则该值将无法正确解析为其长度;这是有道理的,因为空格分隔参数。要么通过删除 CSS 网址中的空格来解决此问题,要么改用更灵活的 % static "filename.png" % 模板标签。

查看https://docs.djangoproject.com/en/dev/howto/static-files/ 了解更多说明。

还值得注意的是,当您在调试模式之外运行系统时,将不会为您管理静态文件。在生产环境中,您负责自己管理静态文件。

【讨论】:

以上是关于调试模式打开时的 Django 和静态文件的主要内容,如果未能解决你的问题,请参考以下文章

Django的配置文件和静态文件以及路由

Django框架入门:配置和静态文件

Django配置静态文件与路由

Django提供静态文件服务

软件调试和应用软件开发模式

在 Heroku 上部署 Django/静态文件的正确方法