mirror of
https://github.com/middleman/middleman.git
synced 2022-11-09 12:20:27 -05:00
36 lines
No EOL
1 KiB
Ruby
Executable file
36 lines
No EOL
1 KiB
Ruby
Executable file
module Middleman::Features::RelativeAssets
|
|
class << self
|
|
def registered(app)
|
|
::Compass.configuration.relative_assets = true
|
|
|
|
app.register_asset_handler :relative_assets do |path, prefix, request|
|
|
begin
|
|
prefix = app.images_dir if prefix == app.http_images_path
|
|
rescue
|
|
end
|
|
|
|
if path.include?("://")
|
|
app.before_asset_handler(:relative_assets, path, prefix, request)
|
|
elsif path[0,1] == "/"
|
|
path
|
|
else
|
|
path = File.join(prefix, path) if prefix.length > 0
|
|
request_path = request.path_info.dup
|
|
request_path << app.index_file if path.match(%r{/$})
|
|
request_path.gsub!(%r{^/}, '')
|
|
parts = request_path.split('/')
|
|
|
|
if parts.length > 1
|
|
arry = []
|
|
(parts.length - 1).times { arry << ".." }
|
|
arry << path
|
|
File.join(*arry)
|
|
else
|
|
path
|
|
end
|
|
end
|
|
end
|
|
end
|
|
alias :included :registered
|
|
end
|
|
end |