Вот сценарий:Каким должен быть мой LESS @import путь?
Я запускаю Django 1.3.1, используя статические файлы и django-compressor (последняя стабильная), чтобы, помимо прочего, скомпилировать файлы LESS.
У меня есть каталог «assets», который подключен к staticfiles с помощью STATICFILES_DIRS
(для статических ресурсов по всему проекту). В этом каталоге у меня есть каталог «css» и в этом файле «lib.less», который содержит LESS-переменные и mixins.
Таким образом, физический путь <project_root>/assets/css/lib.less
, и он подается в /static/css/lib.less
.
В статическом каталоге моего приложения у меня есть еще один файл LESS, который необходимо импортировать выше. Физический путь для этого - <project_root>/myapp/static/myapp/css/file.less
, и он будет подан в /static/myapp/css/file.less
.
Моя первая мысль была:
@import "../../css/lib.less"
(т.е. на основе URL, идти до уровней от /static/myapp/css
до /static/
, затем траверс вниз в /static/css/lib.less
).
Однако это не работает, и я пробовал практически каждую комбинацию URL-адресов и физических путей, о которых я могу думать, и все они дают мне FilterError
s в шаблоне, в результате чего вы не сможете найти файл для импорта.
У кого-нибудь есть идеи, каков фактический путь импорта?
Blah! Я думаю, что мне придется сделать то же самое ... Мой локальный разработчик dev не знает о статических файлах django .. поэтому, даже если я изменил свой рабочий процесс, чтобы запустить localstatic локально, мой компилятор будет изменять файлы в каталоге/static/dir. Немного неудачно. Вы все еще использовали статические файлы для всего, кроме CSS? –
В итоге я переместил меньше файлов на 'assets/less/products.less' и удалил структуру папок приложения. Одно приложение со всеми его активами чувствует себя так чисто, слишком плохо, что он ушел! –
Возможно, мне что-то не хватает, но почему бы просто не сконфигурировать 'lessc' с несколькими путями include, которые делают это так, что вам не нужно использовать эти относительные пути? Это может быть не идеальным или namespace-y, но и ваше решение не является. – tmandry