如何在 Django 中使用 CSS?

我正在创建我的应用程序使用 Django,并想知道我如何可以使 Django 使用我的 CSS 文件?我需要做什么设置才能让 Django 看到 css 文件?

注意: 在本地机器上

96895 次浏览

要让 Django 看到 css 文件,我需要做什么设置?

没有。

确保您的模板包含 CSS 文件(像标准 HTML 那样) ,并将 CSS 文件放在媒体服务器上。

澄清一下: 对于 Django,强烈建议您从不同的服务器实例提供所有媒体(非动态 html 的所有内容)。如何实现这一点完全取决于您,但大多数人创建一个子域。

更一般地说,您询问如何从 Django 提供静态文件。如果在 Apache 下运行,应该读取 http://docs.djangoproject.com/en/dev/howto/deployment/modpython/

如果您正在运行开发服务器(比如,在您的笔记本电脑上) ,请阅读 http://docs.djangoproject.com/en/dev/howto/static-files/

请注意关于 Django 开发服务器的 大大的免责声明:

  • 使用此服务器效率低下且不安全。
  • Do not use this in a production setting.
  • 仅用于开发。

如果您正在使用开发服务器按照 Django 项目用于管理静态文件的 how-to 指南设置 URL,那么在模板中引用您的媒体文件——例如,来自 /site_media/images/foo.gif的图像文件夹中的图像。

对 django 使用 css 最简单的方法是将它作为静态文件添加到模板中。

但它有点像 ajax,我没有找到任何东西告诉如何以标准方式包含它。

如果你想优化 django 的大小,有一个 Css 压缩机模块。

官方的姜戈文档没有帮助我。希望博客文章“ Django: 如何服务静态文件”对你们有所帮助。

这也给我造成了一段时间的问题(404没有发现错误)。对我来说,缺少的是在 setings.py 中编辑 STATICFILES_DIRS元组,从而得到以下结果:

STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)

然后,它在 django 项目顶层的一个名为“ media”的文件夹中提取我的 CSS 文件。

我还有:

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'

(确保你有领先的 /以上在 STATIC_URL)

当然,如上所述,您需要将 CSS 文件正确地包含在您的 html 文件中:

<link href="\{\{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />