Jekyll会覆盖Compass生成的输出文件夹和CSS

时间:2011-06-02 16:29:38

标签: jekyll compass-sass

我正在尝试将Jekyll与Compass一起使用。 在一个命令行上,我正在运行jekyll --auto,而在另一个命令行compass watch。 SASS文件位于/stylesheets,并编译为/_site/stylesheets。 Jekyll配置为忽略/stylesheets

编译样式表在开始时工作正常,但每次我更改让Jekyll重新生成网站的内容时,它都会覆盖整个/_site文件夹而/_site/stylesheets消失了。由于源SASS文件未更改,因此Compass不会重新生成它。

还有另一种方法可以将Jekyll与Compass一起使用吗? 我可以将Jekyll配置为不覆盖完整的输出文件夹,而只覆盖更改的文件吗?

2 个答案:

答案 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将只复制文件正确。