6

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/できますか?

4

2 に答える 2

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を参照してください。

編集

この予防策は、アプリケーションに追加のロード/追加されたリクエストの価値があるとは思いません。高可用性を提供するためにフェイルオーバーサーバーを備えた大規模なアプリケーションを構築している場合、資産はその冗長性で対応できるもう1つのものになります。AWSやRackspaceなどのサービスを介してクラウド上でコンテンツをホストしている場合は、可用性に優れていると思います。問題について心配する必要はありません。このアプローチは、アセットをキャッシュする利点をほぼ完全に打ち消します。

于 2012-08-27T10:48:43.427 に答える
0

次のディレクティブを調べることができます

ActionController::Base.asset_host = Proc.new { |source, request|
  if #code to check if CDN is alive
    "CDN Url"
  else
    "/public/assets/"
  end
}
于 2012-08-21T19:42:12.870 に答える