2015-03-03 2 views
1

У меня есть приложение для рельсов 4, которое правильно использует config.action_controller.asset_host = "xxxxxxx.cdn.com", чтобы отобразить URL-адреса ресурсов для указания CDN.Как создать ресурс на сайте jekyll?

Приложение также имеет сайт документации, в котором используется jekyllrb. Теперь я хочу иметь возможность ссылаться на активы из CDN, но пока не повезло.

Я не могу найти документацию о том, как настроить хост CDN для сайта doc.

Пытаюсь вещи, как это:

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

но не повезло, я просто получить URL изображения, но не КДС вещи. Все, что я нашел, это ссылки Shoppify (я думаю, также использовать Liquid)

Любой намек более чем приветствуется!

благодаря

ответ

5

Найдено это:

конфигурации Джекил для CloudFront Чтобы сделать его легко обслуживать свои активы от CloudFront, я создал пользовательский жидкостный фильтр:

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

Сохраните это в _plugins/cdn.rb от корня вашего сайта Jekyll каталог.

Затем я добавил запись CDN в свой файл _config.yml. Если я прокомментирую эту строку, мои активы будут обслуживаться с S3 (или localhost, если я запускаю Jekyll локально).

cdn: http://cdn.maxmasnick.com 

Всякий раз, когда я хочу, чтобы актив, обслуживаемый CDN, проходил через этот жидкостный фильтр. Например, в моем файле макета у меня есть:

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

Источник: http://www.maxmasnick.com/2012/01/21/jekyll_s3_cloudfront/

Смежные вопросы