2011-06-02 69 views
1

我正在尝试与Compass一起使用Jekyll。 在一条命令行中,我运行的是jekyll --auto,另一条命令是compass watch。 SASS文件位于/stylesheets,并编译为/_site/stylesheets。 Jekyll配置为忽略/stylesheetsJekyll覆盖由Compass生成的输出文件夹和CSS

编译样式表一开始工作正常,但每次我改变一些使得Jekyll重新生成网站的东西时,它会覆盖整个/_site文件夹,并且/_site/stylesheets消失了。由于源SASS文件没有改变,Compass不重新生成它。

有没有另一种方式使用Jekyll和Compass? 我可以配置Jekyll不覆盖整个输出文件夹,但只是改变的文件?

回答

1

我正在使用Jekyll &指南针为我的github页面。这里:https://github.com/ardianzzz/ardianzzz.github.com

简单, 我只是把生成的css文件夹放在根文件夹中。 Jekyll将在_site文件夹内生成文件。

正如你可以在我的存储库中看到的。

只需调用CSS用下面的代码

<link href = "/css/screen.css" ... 

的英语不好,对不起。 :)

+0

太棒了!你对我的问题有答案吗? – 2011-06-12 09:12:24

+0

感谢您的回答,@ardianzzz!是的,将样式表文件夹放入根文件夹肯定是一种选择。 – 2011-06-13 14:10:23

+0

这就是我最后的结果。在我的SASS文件/样式表中让Jekyll忽略该文件夹。 Comfigure Compass编译成/ css,该文件夹将自动被拉入/ _site。 – 2011-06-15 07:37:27

1

问题在于,Jekyll在运行时会将_site目录的所有内容剪掉。我解决这个得到的方法是使用耙部署,然后在我的Rakefile以下几点:

task :generate => :clear do 
    sh 'jekyll' 
    sh 'compass compile' 
end 

我然后只需运行:

$ rake generate 

其中填充哲基尔目录,然后放指南针文件结束。

一个更简洁的解决方案可能是让您的指南针 - 观察过程(假设您正在运行)将指南针编译为projectdir/css。当你运行jekyll时,它只会将该css目录直接拖拽到_site/css中,然后完成,没有任何问题(请参阅下面的dir结构)。

projectdir/ 
    css/ 
    stylesheets/ 

如果你把任何东西_site/CSS,然后运行杰奇将被删除后,让你无论是需要运行后罗盘,或把罗盘文件放到css文件夹的根目录,然后jekyll只会正确地复制文件。