【问题标题】:How do I set up asset_host in a jekyll generated site?如何在 jekyll 生成的站点中设置asset_host?
【发布时间】:2017-09-25 05:03:49
【问题描述】:

我有一个正确使用 config.action_controller.asset_host = "xxxxxxx.cdn.com" 来呈现资产 URL 以指向 CDN 的 rails 4 应用程序。

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

我找不到有关如何为文档站点设置 CDN 主机的文档。

我正在尝试这样的事情:

<img type="image/svg+xml" src="{{ '/docs/images/' | append: page.logo_image  | asset_url}}">

但没有运气,我只得到图像 url 但没有 cdn 的东西。我发现的都是 Shoppify 链接(我认为也使用 Liquid)

欢迎任何提示!

谢谢

【问题讨论】:

    标签: ruby-on-rails jekyll cdn


    【解决方案1】:

    找到这个:

    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 条目。如果我将此行注释掉,我的 资产将由 S3 提供(如果我在本地运行 Jekyll,则为 localhost)。

    cdn: http://cdn.maxmasnick.com
    

    每当我希望 CDN 提供资产时,我都会将其传递给这个 Liquid 过滤器。例如,在我的布局文件中,我有:

    &lt;link rel="stylesheet" href="{{ "assets/css/frameless.css" | cdn }}" /&gt;

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

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多