中间人 - 构建时CDN的资产路径

时间:2013-07-02 19:21:16

标签: ruby sprockets middleman

我想做以下

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

尝试所有组合并在任何地方阅读,但此刻只是难倒

红宝石和中间人 - 还在学习。

2 个答案:

答案 0 :(得分:8)

你是否在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" />

答案 1 :(得分:1)

我确实遇到了早期答案的问题。要实际更改资产路径以使用CloudFront等CDN,我必须执行以下操作:

# Fingerprint assets
activate :asset_hash

# Enable Asset Hosts
activate :asset_host

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