在production.rb
我设置了这个:
# Enable serving of images, stylesheets, and JavaScripts from an asset server
config.action_controller.asset_host = "http://myassets.com"
图片,js和样式表从我的CDN(资产服务器)
正常加载但是如果有一天这个资产服务器失败怎么办?它会返回404?
因为在我的资产服务器(CDN)中,我配置了pull zone
,所以内容仍然可以从/assets/..
获得。
是否有任何后备或如何进行后备,以便当我的assets server
失败或返回错误时,我的应用程序会从应用程序中的/assets/
加载资源?
答案 0 :(得分:4)
production.rb
config.action_controller.asset_host = Proc.new { |source, request, asset_path|
if some_condition
"http://myassets.com"
else
asset_path
end
}
有关详细信息,请参阅AssetTagHelper
修改强>
我认为此预防措施不值得为您的应用程序额外加载/添加请求。如果您使用故障转移服务器构建大型应用程序以提供高可用性,那么资产将是您为该冗余所能容纳的另一件事。如果您通过AWS或Rackspace等服务在云端托管您的东西,我认为您的可用性很好,您不应该担心这个问题。这种方法几乎完全否定了缓存资产的好处。
答案 1 :(得分:0)
您可以浏览以下指令
ActionController::Base.asset_host = Proc.new { |source, request|
if #code to check if CDN is alive
"CDN Url"
else
"/public/assets/"
end
}