Rails 3-Существует ли какой-либо резервный вариант для того, чтобы обслуживать активы с сервера активов?
В моем production.rb
я установил следующее:
# Enable serving of images, stylesheets, and JavaScripts from an asset server
config.action_controller.asset_host = "http://myassets.com"
И изображения, js и таблицы стилей загружаются нормально с моего CDN (assets server)
Но что, если однажды эти серверы активов выйдут из строя? и он возвращает 404?
Поскольку в моем сервере активов (CDN) я настроил pull zone
, содержимое по-прежнему доступно из /assets/..
.
Существует ли какой-либо резервный вариант или как я могу сделать резервный вариант, чтобы при сбое или ошибке возврата мое приложение загружало ресурсы из /assets/
внутри приложения?
2 ответа:
Производство.rb
config.action_controller.asset_host = Proc.new { |source, request, asset_path| if some_condition "http://myassets.com" else asset_path end }
Дополнительную информацию смотрите в разделе AssetTagHelper
Edit
Я не думаю, что эта предосторожность стоит дополнительной нагрузки/добавленных запросов к вашему приложению. Если бы вы создавали большое приложение с отказоустойчивыми серверами для обеспечения высокой доступности, ресурсы были бы еще одной вещью, которую вы бы приспособили для этой избыточности. Если вы размещаете свои материалы в облаке через сервис, такой как AWS или Rackspace, я думаю, что вы хорошо справляетесь доступность, и вы не должны беспокоиться о проблеме. Такой подход практически полностью сводит на нет преимущества кэширования активов.