我正在尝试将Jekyll与Compass一起使用。
在一个命令行上,我正在运行jekyll --auto
,而在另一个命令行compass watch
。
SASS文件位于/stylesheets
,并编译为/_site/stylesheets
。
Jekyll配置为忽略/stylesheets
。
编译样式表在开始时工作正常,但每次我更改让Jekyll重新生成网站的内容时,它都会覆盖整个/_site
文件夹而/_site/stylesheets
消失了。由于源SASS文件未更改,因此Compass不会重新生成它。
还有另一种方法可以将Jekyll与Compass一起使用吗? 我可以将Jekyll配置为不覆盖完整的输出文件夹,而只覆盖更改的文件吗?
答案 0 :(得分:1)
我正在使用Jekyll&指南针为我的github页面。在这里:https://github.com/ardianzzz/ardianzzz.github.com
简单,
我只是将生成的css文件夹放在根文件夹中。 Jekyll将在_site
文件夹中生成文件。
正如您在我的存储库中看到的那样。
只需使用以下代码调用CSS
<link href = "/css/screen.css" ...
英语不好,抱歉。 :)
答案 1 :(得分:1)
问题是Jekyll在运行时会废弃_site目录的所有内容。我解决这个问题的方法是使用rake进行部署,然后在我的rakefile中使用以下内容:
task :generate => :clear do
sh 'jekyll'
sh 'compass compile'
end
然后我跑了:
$ rake generate
填充jekyll目录,然后将指南针文件放在上面。
一个更简洁的解决方案可能是让您的指南针监视过程(假设您正在运行的程序)将指南针编译为projectdir / css。当你运行jekyll时,它会将css目录直接拉入_site / css并且你已经完成了,没有问题(见下面的dir结构)。
projectdir/
css/
stylesheets/
如果你在_site / css中放了任何东西,然后在它被移除之后运行jekyll,那么你需要在之后运行指南针,或者将指南针文件放到根目录中的css文件夹中,然后jekyll将只复制文件正确。