如何在Jekyll静态站点生成器中使用version.rb插件

时间:2012-11-14 23:36:40

标签: caching plugins jekyll liquid

这是插件代码......

module Jekyll
  module VersionFilter
    def versioned_url(input)
      "#{input}?#{Time.now.to_i}"
    end
  end
end

Liquid::Template.register_filter(Jekyll::VersionFilter)

我正在尝试缓存胸围/版本控制我的.css文件。我是Liquid的新手。我无法搞清楚这个基本的插件。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

您需要将version.rb放入Jekyll站点根目录的_plugins /目录中。如果您没有_plugins /目录,请创建一个。

对于用法 - 看起来它提供了一个可以应用于文本的新过滤器 - 因此您可以在模板中使用它来过滤对CSS文件的引用,添加查询字符串以便它们不会被缓存 - 但我确信无论你从哪里得到代码,都会有更多信息。

对于它的价值,用查询字符串打破缓存并不是最好的解决方案。编写一个向实际文件名添加新字符串的插件可能会更好,然后将该字符串添加到模板中包含这些资产的URL中 - 但这有点复杂。

答案 1 :(得分:0)

如果您可以选择使用现有插件进行静态资产版本控制,请尝试jekyll-minibundle

假设您在_styles中保留了未加盖标记的CSS文件(请注意_,因为您不希望将这些文件导出到生产网站),并希望标记的CSS文件显示在{{1}中},执行以下操作:

css

与指南针结合使用效果很好,只需将指南针导出到<link href="{% ministamp _styles/site.css css/site.css %}" rel="stylesheet" media="screen, projection">