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

Ruby 中间商-构建时CDN的资产路径,ruby,sprockets,middleman,Ruby,Sprockets,Middleman,我想做以下几件事 if build? assetPath = "//cdn.domain.com/assets" else assetPath = "assets" end 尝试所有的组合,到处阅读,但现在却被难倒了 ruby和middleman-仍在学习。您是否在config.rb中尝试此功能?如果没有,你应该这样做 已经有一个您可能想要使用的设置 set :css_dir, 'assets' 。。。并在构建时进行更改: configure :build do set

我想做以下几件事

if build?
    assetPath = "//cdn.domain.com/assets"
else
    assetPath = "assets"
end
尝试所有的组合,到处阅读,但现在却被难倒了


ruby和middleman-仍在学习。

您是否在
config.rb
中尝试此功能?如果没有,你应该这样做

已经有一个您可能想要使用的设置

set :css_dir, 'assets'
。。。并在构建时进行更改:

configure :build do
  set :css_dir, '//cdn.domain.com/assets'
end
你知道这件事吗?你可以用

<%= 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" />

事实上,我对早期的答案有疑问。要实际更改资产路径以使用CloudFront等CDN,我必须执行以下操作:

# Fingerprint assets
activate :asset_hash

# Enable Asset Hosts
activate :asset_host

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

您好,我相信我已经尝试了所有这些-可能安装中的其他一些问题正在发生冲突-我会再试一次,感谢我一直在寻找一种涉及CDN使用http_前缀的解决方案,但发现除了很多挫折之外,什么都没有!此解决方案对我非常有效,谢谢。此解决方案与asset_哈希选项结合使用时不起作用。您必须使用asset_host选项来设置cdn url,正如另一个答案所建议的。您真的需要它吗?当你把一个字符串转换成一个字符串时,它似乎是多余的。无论如何,这种语法不再正确。