从子URI提供静态文件时,找不到较少的css背景图像

时间:2012-01-19 11:32:36

标签: css image url less

对于那些感兴趣的人,我正在使用可爱的静态文件集成和less.js运行Django 1.3设置。

我遇到的问题是:

在我的HTML中,我有:

<link rel="stylesheet/less" type="text/css" href="{{ STATIC_URL }}less/style.less">
<script src="{{ STATIC_URL }}js/less.js" type="text/javascript"></script>

在这种情况下,STATIC_URL是/ static / so当处理HTML时,链接分别变为/static/less/style.less和/static/js/less.js.

现在在我的LESS文件中,我有以下(简化)代码:

body {
    background: url('../img/bkgnd.png');
}

问题在于,对我来说似乎很愚蠢地处理这个问题,除非我是愚蠢的,但同样可能: - )

将较少的JS文件作为http://localhost:8000/static/js/less.js抓取,然后在http://localhost:8000/static/less/style.less抓取css文件

现在我希望少知道style.less的位置,因此在编译CSS时会在http://localhost:8000/static/less/../img/bkgnd.png寻找背景图片,这显然只是http://localhost:8000/static/img/backgnd.png

相反,它似乎忽略了位置,只是在http://localhost:8000/img/backgnd.png寻找背景图片。

有没有人解释为什么会这样?

我通过设置包含静态网址的javascript变量并将其添加到css文件中的图片网址来添加临时修复。这对于开发来说很好,但是我想在生产中使用lessc来编译代码,并且在我看到的时候,我不会允许我传入javascript变量(这会很好)。

任何帮助将不胜感激,这让我发疯: - )

1 个答案:

答案 0 :(得分:2)

它正在查找与您正在查看的文档关系的img文件,而不是与css文件有关。

所以改变你的css:

body {
   background: url('/static/img/bkgnd.png');
}