【发布时间】:2008-11-04 08:12:44
【问题描述】:
我正在使用 Django 创建我的应用程序,我想知道如何让 Django 使用我的 CSS 文件?我需要做哪些设置才能让 Django 看到 css 文件?
注意:在本地机器上
【问题讨论】:
标签: css django django-forms
我正在使用 Django 创建我的应用程序,我想知道如何让 Django 使用我的 CSS 文件?我需要做哪些设置才能让 Django 看到 css 文件?
注意:在本地机器上
【问题讨论】:
标签: css django django-forms
如果您使用开发服务器,请按照 django project's how-to guide for managing static files 设置您的 URL,然后在模板中引用您的媒体文件 - 例如,来自 /site_media/images/foo.gif 的图像文件夹中的图像。
【讨论】:
更一般地说,您是在询问如何从 Django 提供静态文件。如果你在 Apache 下运行,你应该阅读http://docs.djangoproject.com/en/dev/howto/deployment/modpython/
如果您正在运行开发服务器(例如,在您的笔记本电脑上),请阅读http://docs.djangoproject.com/en/dev/howto/static-files/
请注意关于 Django 开发服务器的大而肥的免责声明:
【讨论】:
这也给我带来了一段时间的问题(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" />
【讨论】:
.replace('\\','/') 是不必要的。
我需要做哪些设置才能让 Django 看到 css 文件?
无。
确保您的模板包含 CSS 文件(与标准 HTML 一样)并将 CSS 文件放在媒体服务器上。
澄清一下:对于 Django,强烈建议您从不同的服务器实例提供所有媒体(不是动态 html 的所有内容)。如何实现完全取决于您,但大多数人会创建一个子域。
【讨论】:
官方 django 文档对我没有帮助。希望博文“Django: How to serve static files”对你们中的一些人有所帮助。
【讨论】:
在 django 中使用 css 最简单的方法是将其作为静态文件添加到模板中。
但它有点像 ajax,我没有找到任何说明如何以标准方式包含它的东西。
如果你想优化它的大小,有一个 django 的 css-compressor 模块。
【讨论】: