2016-07-18 4 views
3

Я пытаюсь создать сайт с помощью Jekyll, и все сработало нормально. Пока я не хотел настраивать дизайн.Jekyll не компилирует scss-файлы с `jekyll serve`

Я обновил свой css/main.scss, чтобы включить мою собственную тему в _sass/theme.scss:

// Import partials from `sass_dir` (defaults to `_sass`) 
@import 
     "base", 
     "layout", 
     "syntax-highlighting", 
     "theme" 
; 

Я также обновил _config.yml, потому что jekyll serve -H 0.0.0.0 не компилировать мой новый файл Sass. Я добавил следующее:

sass: 
    sass_dir: _sass 

Проблема заключается в том jekyll serve не компилирует мои Sass файлы, я всегда вижу CSS по умолчанию. Я также попытался скопировать содержимое _sass/theme.scss непосредственно в конце css/main.scss, но ничего не произошло.

Пока я не модифицировал один из этих файлов, пока работал jekyll serve. Дело в том, что jekyll-watch понимает мои обновления и компилирует файлы scss. Могу ли я сделать что-то неправильно для jekyll build не скомпилировать файлы sass с первой попытки?

В случае, если вам это нужно, вот мой проект дерево:

. 
├── _config.yml 
├── css 
│   ├── main.css 
│   └── main.scss 
├── _images 
├── img 
├── index.html 
└── _sass 
    ├── _base.scss 
    ├── _layout.scss 
    ├── _syntax-highlighting.scss 
    └── _theme.scss 

ли кто-то знает, как это исправить?

Спасибо,

+0

ли у вас есть хранилище, где мы можем получить и проверить код? –

+0

Я знаю, вы можете найти его здесь: [github.com/bj0rge](https://github.com/bj0rge/bjorge.xyz/tree/sassTest) – bjorge

ответ

6

Хорошо, я понял!

У вас есть файлы css/main.css, которые копируются как статические файлы в _site/css/main.css.

Проблема в том, что она имеет то же имя, что и цель css/main.scss, которая также является _site/css/main.css.

Таким образом, в первом сборки:

  • css/main.scss обрабатывается для main.css
  • тогда, когда статические файлы копируются, он переопределен css/main.css.

Решение: удалить css/main.css

+0

Он работает, спасибо вам большое! Странно, что 'css/main.css' и' css/main.scss' были сгенерированы командой 'jekyll new myblog', поэтому, если есть конфликт между файлами, зачем создавать их оба? – bjorge

+0

'jekyll new myblog' не создает' css/main.css'. –

1

Вы добавили передний вопрос в верхней части файла main.scss?

+0

Да, файл 'main.scss' начинается с двух строк из трех тире. – bjorge

1

Сначала добавьте в свой config.yml

sass: 
    sass_dir: _sass 

Затем добавьте к началу в файле main.scss, две пунктирные линии https://jekyllrb.com/docs/assets/

--- 
--- 

@charset "utf-8"; 

После этого записи в вашей CMD консоли

jekyll serve

и проверьте свою компиляцию.

+0

Я уже сделал это, но [@ david-jacquel] (http://stackoverflow.com/questions/38437416/jekyll-doesnt-compile-scss-files-with-jekyll-serve#answer-38442415) понял что случилось. В любом случае, спасибо! – bjorge

Смежные вопросы