我正在尝试使用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。我也尝试过在css/main.scss
的末尾直接复制_sass/theme.scss
的内容,但什么也没发生。
直到我在jekyll serve
运行时修改了其中一个文件。问题是jekyll-watch
了解我的更新并编译scs文件。我可能为jekyll build
做了什么错事——第一次尝试不编译sass文件?
如果你需要它,这里是我的项目树:
.
├── _config.yml
├── css
│ ├── main.css
│ └── main.scss
├── _images
├── img
├── index.html
└── _sass
├── _base.scss
├── _layout.scss
├── _syntax-highlighting.scss
└── _theme.scss
有人知道怎么解决这个问题吗?
谢谢你,
好的,我明白了!
您有一个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
您是否已将前面的内容添加到main.scss文件的顶部?
首先添加到您的config.yml
sass:
sass_dir: _sass
然后在main.scss文件的顶部添加两条虚线https://jekyllrb.com/docs/assets/
---
---
@charset "utf-8";
之后在您的cmd控制台中写入
杰基尔服务
并检查您的汇编。
我在尝试使用Jekyll将YAML内容传递到部分时遇到了类似的问题。看起来这个工作流程是不可能的。
解决方法是将所有变量放在主SCSS文件上,并让Jekyll从YAML中填充值,然后对实际样式使用分部。
以下是我的一些解决方案的简单回购:https://github.com/guschiavon/jekyllfy-sass