Jekyll没有使用`jekyll serve`

时间:2016-07-18 13:02:05

标签: sass jekyll

我正在尝试使用Jekyll创建一个网站,一切正常。直到我想要定制设计。

我已更新我的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文件。我可能在第一次尝试编译sass文件时做错了吗?

如果您需要,请点击我的项目树:

jekyll build

有人知道如何解决这个问题吗?

谢谢,

4 个答案:

答案 0 :(得分:8)

好的,我明白了!

您有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

答案 1 :(得分:3)

您是否已将前面的内容添加到main.scss文件的顶部?

答案 2 :(得分:1)

首先添加到config.yml

sass:
    sass_dir: _sass

然后在main.scss文件中添加到顶部,两个虚线https://jekyllrb.com/docs/assets/

---
---

@charset "utf-8";

在您的cmd控制台中写入

之后
  

jekyll serve

并检查您的编辑。

答案 3 :(得分:0)

当尝试使用Jekyll将YAML内容传递到局部时,我遇到了类似的问题。似乎无法执行此工作流程。

解决方法是将所有变量放在主SCSS文件上,并让Jekyll从YAML中填充值,然后将部分样式用于实际样式。

这是我的一些解决方案的简单回购协议:https://github.com/guschiavon/jekyllfy-sass