Ian Warner
Ian Warner

Reputation: 1068

middleman - asset path for CDN at build time

I want to do the following

if build?
    assetPath = "//cdn.domain.com/assets"
else
    assetPath = "assets"
end

trying all combinations and reading everywhere but simply stumped at the moment

ruby and middleman - still learning.

Upvotes: 7

Views: 2002

Answers (2)

Arthur Bierere
Arthur Bierere

Reputation: 21

I actually had problems with the early answer. To actually change the asset path to work with CDNs such as CloudFront, I had to do the following:

# Fingerprint assets
activate :asset_hash

# Enable Asset Hosts
activate :asset_host

set :asset_host do |asset|
  '//d23xxk856.cloudfront.net'.to_s
end

Upvotes: 1

Volker Rose
Volker Rose

Reputation: 1818

Are you trying this within the config.rb? If not, you should do so.

There already is a setting that you might want to use ...

set :css_dir, 'assets'

... and change on build:

configure :build do
  set :css_dir, '//cdn.domain.com/assets'
end

Are you aware of the Asset helpers? You can use ...

<%= stylesheet_link_tag 'foo.css' %>

... within your (ERB) templates.

While developing that should give you ...

<link href="/assets/foo.css" media="screen" rel="stylesheet" type="text/css" />

... and within your build:

<link href="//cdn.domain.com/assets/foo.css" media="screen" rel="stylesheet" type="text/css" />

Upvotes: 8

Related Questions