Для тех, кто интересуется, я запускаю установку Django 1.3, используя прекрасную интеграцию статических файлов и less.js.
Проблема, с которой я сталкиваюсь, такова:
В моем 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 /, поэтому при обработке HTML ссылки становятся /static/less/style.less и /static/js/less.js соответственно.
Теперь в моем файле LESS у меня есть следующий (упрощенный) код:
body {
background: url('../img/bkgnd.png');
}
Проблема в том, что мне кажется, что LESS имеет дело с этим глупо, если я не глупс такой же вероятностью: -)
Меньший JS-файл захватывается как http://localhost:8000/static/js/less.js, а затем захватывает файл css по адресу http://localhost:8000/static/less/style.less
Теперь я ожидаю, что меньшее должно знатьместоположение 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, содержащую статический URL-адрес, и добавив ее к URL-адресу изображения в файле CSS.Это хорошо для разработки, но я хочу скомпилировать код, используя lessc в производственной среде, и less не позволяет мне передавать переменные javascript, насколько я могу видеть (что было бы неплохо).
Любая помощьбыл бы очень признателен, это сводит меня с ума: -)