Set up assets for S3/CloudFront CDN

This commit is contained in:
Jonathan Rudenberg 2012-10-27 19:55:03 -04:00
parent 7ff4d0a1bb
commit 019ad29a7f
12 changed files with 93 additions and 10 deletions

22
lib/asset_url.rb Normal file
View file

@ -0,0 +1,22 @@
module Nanoc3::Helpers::AssetURL
def asset_url(path, options = {})
name, extension = path.match(/([^.]+).(.+)$/).to_a[1..-1]
extensions = extension.split('.')
asset_dir = options[:asset_dir] || extensions.first
filename = "content/assets/#{asset_dir}/#{name}.#{extension}"
fp = fingerprint(filename)
path = "/assets/#{asset_dir}/#{name}#{fp}.#{extensions[0..extensions.size-2].join('.')}"
if ENV['USE_CDN']
@site.config[:cdn_url] + path
else
path
end
end
def image_url(path)
asset_url(path, :asset_dir => 'images')
end
end

View file

@ -8,5 +8,6 @@ include Nanoc3::Helpers::Blogging
include Nanoc3::Helpers::Filtering
include Nanoc3::Helpers::LinkTo
include Nanoc3::Helpers::CacheBusting
include Nanoc3::Helpers::AssetURL
Slim::Engine.set_default_options pretty: true