【问题标题】:How do I use CSS in Django?如何在 Django 中使用 CSS?
【发布时间】:2008-11-04 08:12:44
【问题描述】:

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

注意:在本地机器上

【问题讨论】:

    标签: css django django-forms


    【解决方案1】:

    如果您使用开发服务器,请按照 django project's how-to guide for managing static files 设置您的 URL,然后在模板中引用您的媒体文件 - 例如,来自 /site_media/images/foo.gif 的图像文件夹中的图像。

    【讨论】:

    • 只是对这些 Django 文档的简要说明 - 请确保您选择了您正在使用的 Django 版本的文档。在静态文件方面,版本之间的情况似乎发生了很大变化。
    • @Sam 有一个很好的观点。我一生都想不出静态文件。然后,更改安装的 django 版本,瞧。这实际上就是我所要做的,因为显然我正在查看错误版本的文档。
    【解决方案2】:

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

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

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

    • 使用此服务器效率低下且不安全。
    • 请勿在生产环境中使用它。
    • 仅将其用于开发。

    【讨论】:

    • “不要在生产环境中使用它。”您介意对此进行扩展吗?
    • @Chris:你说得对,声明有点模棱两可。我指的是 Django 开发服务器。虽然我在我们的生产站点上运行了几次,但只是在调试棘手问题时的很短的时间。
    • 感谢您的澄清,我正在查看我在 apache 上运行的 django 部署,想知道我做错了什么。 :)
    • 不错。我喜欢这 3 个项目以不同的方式说同样的事情。感谢您的警告。
    • 我非常喜欢那些在答案发布 4.5 年后出现并投反对票的人。我想知道他们是否知道 2008 年 11 月的 Django 是什么 ...可能不知道。这不是我的代表点数,而是无知和傲慢的结合,只是暗示迟到waaay。我想知道他们会如何评价我在 1987 年发布到 comp.lang.c 的帖子?最好不要问。
    【解决方案3】:

    这也给我带来了一段时间的问题(404 未找到错误)。对我来说缺少的一点是在 settings.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 中具有上述领先的/

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

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

    【讨论】:

    • 最后,一个清晰、简单、优雅的解决方案。适用于 django 1.5。
    • # 始终使用正斜杠,即使在 Windows 上也是如此。 .replace('\\','/') 是不必要的。
    【解决方案4】:

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

    无。

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

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

    【讨论】:

    • 嗨,奥利。我知道这篇文章已经接近 3 年了,但这仍然是将 css 链接到 django 模板的最佳方式吗?这似乎是最简单的,只需将 css 链接到像 static.example.com 这样的 abs URL 并将所有静态文件存储在该 url。
    【解决方案5】:

    官方 django 文档对我没有帮助。希望博文“Django: How to serve static files”对你们中的一些人有所帮助。

    【讨论】:

      【解决方案6】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-10-17
        • 1970-01-01
        • 1970-01-01
        • 2021-08-31
        • 2022-08-02
        • 2021-09-25
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        相关资源
        最近更新 更多