2013-07-02 31 views
5

對CDN的資源路徑我想要做以下中間人 - 在構建時

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

嘗試所有的組合和閱讀無處不在,但只是此刻

紅寶石和中間人難倒 - 仍然在學習。

回答

7

您想嘗試config.rb嗎?如果沒有,你應該這樣做。

已經有,你可能想使用一個設置...

set :css_dir, 'assets' 

...和變化對構建:

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

你知道Asset helpers的?您可以使用...

<%= stylesheet_link_tag 'foo.css' %> 

...在您的(ERB)模板中。

在發展,應該給你...

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

...您的構建中:

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

您好我相信我嘗試了所有這一切 - 也許其他一些問題與安裝的碰撞 - 我會嘗試再次感謝 –

+0

嗨伊恩。對此有何更新?我建議的設置是否有效? –

+1

我一直在尋找一個解決方案,涉及CDN使用http_prefix,發現沒有什麼,但很多挫折!這個解決方案對我很好,謝謝。 – roguenet

1

其實我有與早期的答案的問題。要真正改變使用的CDN如CloudFront的工作資產路徑,我必須做到以下幾點:

# Fingerprint assets 
activate :asset_hash 

# Enable Asset Hosts 
activate :asset_host 

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

你真的需要那個.to_s嗎?在將字符串轉換爲字符串時看起來多餘。 – reid

+1

對於它的價值,這種語法不再正確。 https://middlemanapp.com/basics/build_and_deploy – coreyward