如何在jekyll生成的站点中设置asset_host?

Dj *_*ana 1 ruby-on-rails cdn jekyll

我有一个rails 4应用程序正确使用config.action_controller.asset_host ="xxxxxxx.cdn.com"来渲染资产网址指向CDN.

该应用程序还有一个使用jekyllrb的文档站点.现在我希望能够从CDN引用资产,但到目前为止还没有运气.

我无法找到有关如何为doc站点设置CDN主机的文档.

我正在尝试这样的东西:

<img type="image/svg+xml" src="{{ '/docs/images/' | append: page.logo_image  | asset_url}}">
Run Code Online (Sandbox Code Playgroud)

但没有运气,我只是得到图像网址但没有cdn的东西.我找到的只是Shoppify链接(我认为也使用Liquid)

任何提示都非常受欢迎!

谢谢

pat*_*ick 5

发现这个:

CloudFront的Jekyll配置为了便于从CloudFront提供我的资产,我设置了一个自定义的Liquid过滤器:

module Jekyll
  module AssetFilter
    def cdn(input)
      "#{@context.registers[:site].config['cdn']}/#{input}"
    end
  end
end
Liquid::Template.register_filter(Jekyll::AssetFilter)
Run Code Online (Sandbox Code Playgroud)

将其保存在_plugins/cdn.rbJekyll站点目录的根目录下.

然后我在我的_config.yml文件中添加了一个CDN条目.如果我评论这一行,我的资产将从S3(或本地主机,如果我在本地运行Jekyll)服务.

cdn: http://cdn.maxmasnick.com
Run Code Online (Sandbox Code Playgroud)

每当我想要CDN提供资产时,我都会通过这个Liquid过滤器.例如,在我的布局文件中,我有:

<link rel="stylesheet" href="{{ "assets/css/frameless.css" | cdn }}" />

资料来源:http: //www.maxmasnick.com/2012/01/21/jekyll_s3_cloudfront/