django - 在 Django 中,如何处理 CSS 文件中的静态内容?

标签 django

例如,我可能希望按如下方式加载图像:

background: url("/path/to/image.png") 

但是,因为 CSS 文件不是通过模板系统运行的,所以我无法访问通常的
{% load staticfiles %}

处理此类静态内容的正确方法是什么?

最佳答案

浏览器已经知道 css 文件路径,所以只需使用相对 URL:

background: url("../img/image.png")

[编辑]

But what happens if I have a page at /onelevel And another page at /really/deeply/nested/page won't this break the relative system? Also if I eventually choose to host the static content externally ideally I would like the study content management to be as DRY as possible - OP.



让我解释。为了读取 CSS 文件,浏览器必须先下载它。为了下载它,必须知道 CSS 文件 URL。所以浏览器已经知道了 CSS 文件的路径。假设您在 CDN 上托管媒体,URL 为:
http://cdn.yoursite.com/css/style.css

当您使用像 ../img/logo.png 这样的相对 URL 时,浏览器将获取 CSS 文件的路径 ( http://cdn.yoursite.com/css/ ) 并附加 ../img/logo.png到它。

它运行良好,比整个路径更短,让您无需更改点即可在其他项目/应用程序中重用媒体。你不能得到更多的干燥。

这就是为什么在 CSS 文件附近的任何地方都不需要 settings.STATIC_URL 的原因,它将在 HTTP 服务时从文件 URL 派生。

关于django - 在 Django 中,如何处理 CSS 文件中的静态内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17119232/

相关文章:

javascript - 如何使用 django 创建 GPS 位置小部件?

django - 在 django 中添加电子邮件 header

django.db.utils.OperationalError : (1091, "Can' t DROP 'company_id' ;检查列/键是否存在”)

django - 如何在多个应用程序之间使用模型?

python - 可插拔应用程序的Django默认设置约定?

python - 当 Django 不为 Web 服务器的根提供服务时,如何引用 Django Rest Framework 路由器 URL

c++ - 高性能 : Do call C++ methods directly from a python backend?

python - 如何使用 Django oAuth 工具包从 Django Rest Framework 获取请求应用程序详细信息

与 paypal 集成的 django 注册

python - Django 类 View 和反向 URL