我有一个rails 4应用程序正确使用 config.action_controller.asset_host =" xxxxxxx.cdn.com" 来渲染资产网址指向CDN。
该应用还有一个使用 jekyllrb 的文档网站。现在我希望能够从CDN引用资产,但到目前为止还没有运气。
我无法找到有关如何为doc site设置CDN主机的文档。
我尝试这样的事情:
<img type="image/svg+xml" src="{{ '/docs/images/' | append: page.logo_image | asset_url}}">
但没有运气,我只是得到图片网址,但没有cdn的东西。我发现的所有内容都是Shoppify链接(我认为也使用Liquid)
任何提示都非常受欢迎!
感谢
答案 0 :(得分: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)
将此保存在Jekyll网站目录根目录的
_plugins/cdn.rb
中。然后我在我的
_config.yml
文件中添加了CDN条目。如果我评论这一行,我的 如果我在本地运行Jekyll,资产将从S3(或localhost)提供服务。cdn: http://cdn.maxmasnick.com
每当我想要CDN提供资产时,我都会通过此Liquid过滤器。例如,在我的布局文件中,我有:
<link rel="stylesheet" href="{{ "assets/css/frameless.css" | cdn }}" />
来源: http://www.maxmasnick.com/2012/01/21/jekyll_s3_cloudfront/