CSS文件中的Django媒体网址

前端之家收集整理的这篇文章主要介绍了CSS文件中的Django媒体网址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在django模板中,通常执行以下操作:
  1. <img src="{{ MEDIA_URL }}/img/someImage.jpg">

如何在不作为模板的CSS文件中实现这一点?

  1. .someClass {
  2. /* can't do this this */
  3. background: url("{{ MEDIA_URL }}/img/someImage.jpg");
  4. /* either this */
  5. background: url("http://media.domain.com/img/someImage.jpg");
  6. /* or this */
  7. background: url("/django_static_media/img/someImage.jpg");
  8. /* can't do both... what to do? */
  9. }

我需要能够从媒体子域或在离线工作期间提供我的文件,并将它们直接作为django静态视图来提供。但是CSS文件是一个问题,因为它们不作为模板处理,我不能使用MEDIA_URL上下文变量。

什么解决方案?

编辑:我应该注意,问题出现,因为我的静态媒体文件实际上位于一个单独的媒体子域,从而否定使用相对路径。知道了谢谢!

解决方法

您的css文件从哪里提供?这通常不是一个常见的媒体结构的问题,如:
  1. media/
  2. images/
  3. css/
  4. js/

(或类似的)允许图像的相对文件路径,例如:

  1. background: url('../images/foo.png');

如果您不准备更改媒体文件夹结构以适应相对文件路径,则在脱机时使用辅助css文件,除了从模板中覆盖CSS声明之外,您别无选择:

  1. {% if DEBUG %}
  2. <link rel="stylesheet" href="{{ MEDIA_URL }}css/offline-mode.css" />
  3. {% endif %}

当然第一个选项是更整齐。

猜你在找的CSS相关文章