@import-ed .scss файлы и звездочки 4

Возможно, еще слишком рано, чтобы получить хорошие ответы, но здесь мы идем: у меня есть тестовый проект Rails, с assets/ каталог, который выглядит примерно так:

config/
  manifest.js
images/
javascripts/
  application.js
stylesheets/
  _base.scss
  _reset.scss
  _theme.scss
  _variables.scss
  application.scss

Файл манифеста выглядит так:

// JS and CSS bundles
//= link_tree ../javascripts .js
//= link_tree ../stylesheets .css

// Images so that views can link to them
//= link_tree ../images

И application.scss как это:

@import "reset";
@import "variables";
@import "base";
@import "theme";

_base.scss а также _theme.scss оба используют переменные, определенные в _variables.scss файл.

То, что я хочу сделать, это просто скомпилировать application.scss как обычно, но терпит неудачу, потому что не думает, что переменные определены; это разумно, я делаю ссылки в виде дерева, поэтому [я предполагаю] он компилирует каждый файл по отдельности, а переменные не доступны для двух файлов в данный момент времени.

Так что я стараюсь link ../stylesheets/application.css вместо дерева я получаю сообщение об ошибке couldn't find file '../stylesheets/application.css' under '/Users/danielcouper/Projects/myproject/app/assets/config'; то есть кажется, что он выглядит не в том месте, или существуют разные (недокументированные) правила относительно путей к файлам в зависимости от того, используете ли вы link или же link_tree,

Если я перееду manifest.js из assets/config/ каталог для assets/ чтобы заставить работать относительные пути, как описано в примечаниях по обновлению Sprockets, я получаю сообщение об ошибке, в котором нет файла манифеста под assets/config/,

Документация [понятно] супер редкая в минуту; единственная полезная вещь, которую я прочитал, была на http://eileencodes.com/posts/the-sprockets-4-manifest/, что позволило мне добраться до этой точки

1 ответ

Не использовать link_tree, дерево ссылок импортирует все файлы в дереве. Если вам нужен только один файл application.css, используйте это:

link application.scss

Таким образом звездочки начнутся с этого файла, а sass выполнит импорт.

Другие вопросы по тегам