Serve up paperclip attachments in a cache friendly way

This commit is contained in:
Tom Hughes 2012-02-20 00:38:05 +00:00
parent a6c36b9133
commit f2150a94cf
7 changed files with 27 additions and 14 deletions

View file

@ -56,7 +56,7 @@ defaults: &defaults
gpx_trace_dir: "/home/osm/traces"
gpx_image_dir: "/home/osm/images"
# Location of data for attachments
attachments_dir: ":rails_root/public"
attachments_dir: ":rails_root/public/attachments"
# Log file to use
#log_path: ""
# List of memcache servers to use for caching

View file

@ -0,0 +1,20 @@
module Paperclip
class AssetUrlGenerator < UrlGenerator
include Sprockets::Helpers::IsolatedHelper
include Sprockets::Helpers::RailsHelper
def for(style_name, options)
url = super(style_name, options)
if url =~ /^\/assets\/(.*)$/
asset_path($1)
else
url
end
end
end
end
Paperclip::Attachment.default_options[:url] = "/attachments/:class/:attachment/:id_partition/:style/:fingerprint.:extension"
Paperclip::Attachment.default_options[:path] = "#{ATTACHMENTS_DIR}/:class/:attachment/:id_partition/:style/:fingerprint.:extension"
Paperclip::Attachment.default_options[:url_generator] = Paperclip::AssetUrlGenerator