调试模式打开时的 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 和静态文件的主要内容,如果未能解决你的问题,请参考以下文章