1

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

一开始编译样式表工作得很好,但是每次我更改一些让 Jekyll 重新生成站点的内容时,它都会覆盖整个/_site文件夹并且/_site/stylesheets消失了。Compass 不会重新生成它,因为源 SASS 文件没有更改。

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

4

2 回答 2

1

我在我的 github 页面上使用 Jekyll & Compass。这里:https ://github.com/ardianzzz/ardianzzz.github.com

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

正如您在我的存储库中看到的那样。

只需使用以下代码调用 CSS

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

英语不好,对不起。:)

于 2011-06-12T02:46:31.910 回答
1

问题是 Jekyll 在运行时会删除 _site 目录的所有内容。我解决这个问题的方法是使用 rake 进行部署,然后在我的 rakefile 中包含以下内容:

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

然后我运行:

$ rake generate

它填充 jekyll 目录,然后将指南针文件放在上面。

一个更简洁的解决方案可能是让您的 compass -watch 进程(假设您正在运行)将 compass 编译为 projectdir/css。然后,当您运行 jekyll 时,它只会将该 css 目录直接拉到 _site/css 中,您就完成了,没有问题(参见下面的 dir 结构)。

projectdir/
    css/
    stylesheets/

如果你在 _site/css 中放了任何东西,然后在删除后运行 jekyll,那么你要么需要在之后运行 compass,要么将 compass 文件放入根目录下的 css 文件夹中,然后 jekyll 将正确复制文件.

于 2011-06-14T09:45:06.990 回答