【问题标题】:Jekyll overwrites output folder and CSS generated by CompassJekyll 覆盖 Compass 生成的输出文件夹和 CSS
【发布时间】:2011-06-02 16:29:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: jekyll compass-sass


    【解决方案1】:

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

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

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

    只需使用以下代码调用 CSS

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

    英语不好,抱歉。 :)

    【讨论】:

    • 太棒了!你有我的问题的答案吗?
    • 感谢您的回答,@ardianzzz!是的,将样式表文件夹放入根文件夹肯定是一种选择。
    • 这就是我最后的选择。将我的 SASS 文件放在 /stylesheets 中,让 Jekyll 忽略该文件夹。配置 Compass 编译成 /css,该文件夹将自动拉入 /_site。
    【解决方案2】:

    问题是 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 只会复制文件正确。

    【讨论】:

      猜你喜欢
      • 2010-12-08
      • 2013-11-16
      • 2012-08-24
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多