CSS文件中的Django媒体网址

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

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

.someClass {
    /* can't do this this */
    background: url("{{ MEDIA_URL }}/img/someImage.jpg");        
    /* either this */
    background: url("http://media.domain.com/img/someImage.jpg");
    /* or this */
    background: url("/django_static_media/img/someImage.jpg");
    /* can't do both... what to do? */
}

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

什么解决方案?

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

解决方法

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

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

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

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

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

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

猜你在找的CSS相关文章