113

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

注意:在本地机器上

4

6 回答 6

48

如果您使用开发服务器,请按照django 项目的操作指南管理静态文件来设置您的 URL,然后在模板中引用您的媒体文件——例如,图像文件夹中的图像/site_media/images/foo.gif

于 2009-03-05T23:19:40.193 回答
36

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

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

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

  • 使用此服务器效率低下且不安全。
  • 不要在生产环境中使用它。
  • 仅将其用于开发。
于 2008-11-05T01:59:38.907 回答
13

这也给我带来了一段时间的问题(404 未找到错误)。对我来说缺少的一点是编辑STATICFILES_DIRSsettings.py 中的元组给我这个:

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

当然,如上所述,您需要从 html 文件中正确包含 CSS 文件。我有:

<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
于 2012-10-03T10:14:59.160 回答
12

我需要做哪些设置才能让 Django 看到 css 文件?

没有任何。

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

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

于 2008-11-04T08:32:35.883 回答
8

官方 django 文档对我没有帮助。希望博文“ Django:如何提供静态文件”对你们中的一些人有所帮助。

于 2010-12-02T08:12:47.747 回答
0

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

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

如果你想优化它的大小,有一个用于 django 的css-compressor模块。

于 2009-11-24T13:29:36.390 回答