2

Rails 4 で動作する asset_sync gem を持っている人はいますか? Rails 3 で問題が発生したことはありませんが、アセットを S3 バケットにプリコンパイルすることはできなくなりました。すべてがパブリック フォルダーにコンパイルされるだけです。

これが失敗する原因となるRails 3と4の主な違いを調べたり要約したりするためのリソースに関するアドバイスを誰でも提供できますか? 使用された構成のいくつかの例は、それを機能させた人にとって役立ちます。これのデバッグを開始する方法に途方に暮れています

アドバイスや助けをいただければ幸いです

ありがとう

編集

現在の構成

asset_sync.rb # イニシャライザ内

if defined?(AssetSync)
 AssetSync.configure do |config|
  config.fog_provider = ENV['FOG_PROVIDER']
  config.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID']
  config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
  config.fog_directory = ENV['FOG_DIRECTORY']
  config.fog_region = ENV['FOG_REGION']
  config.existing_remote_files = "delete"
  config.gzip_compression = true
  config.manifest = true
  config.custom_headers = { '.*' => { cache_control: 'max-age=315576000', expires: 1.year.from_now.httpdate } }
 end
end

プロダクション.rb

YmcaView::Application.configure do

config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local       = false
config.action_controller.perform_caching = true
config.serve_static_assets = true 
config.assets.js_compressor = :uglifier
config.assets.compile = true
config.assets.digest = true
config.assets.version = '1.0'
config.log_level = :info
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
end

rake assets:precompile RAILS_ENV=production 実行時の出力

 I, [2014-03-04T13:04:41.176230 #6085]  INFO -- : Writing /home/richardlewis/Rails/ymca_view/public/assets/760x380_10-477c3cdc939905d6b32f9997e7f93072.jpg
 I, [2014-03-04T13:04:41.177963 #6085]  INFO -- : Writing /home/richardlewis/Rails/ymca_view/public/assets/aboutus-d9ad504fcd86071255015d24780caef8.jpg
 I, [2014-03-04T13:04:45.018794 #6085]  INFO -- : Writing /home/richardlewis/Rails/ymca_view/public/assets/application-90d317f561a8b0e84124ce7bb872f867.js
 I, [2014-03-04T13:04:46.666640 #6085]  INFO -- : Writing /home/richardlewis/Rails/ymca_view/public/assets/application-b422f803b56ae2f5c56a648891ec553e.css
 [fog][WARNING] Unable to load the 'unf' gem. Your AWS strings may not be properly encoded.
4

2 に答える 2

2

はい、Rails 4 で動作するようになりました

これを行う必要があります:

#GemFile (might need aws_sdk gem too)
gem "asset_sync", "~> 1.0.0"

#config/environments/production.rb
config.action_controller.asset_host = "//#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"

$-> rake assets:precompile RAILS_ENV=production

Figaroを使用してENV変数をローカルに保存します。取得したものは次のとおりです。

#config/application.yml
FOG_DIRECTORY: "***BUCKET_NAME****"
FOG_PROVIDER: "AWS"
FOG_REGION: "eu-west-1"
ASSET_SYNC_GZIP_COMPRESSION: "true"
ASSET_SYNC_MANIFEST: "true"
ASSET_SYNC_EXISTING_REMOTE_FILES: "delete"
于 2014-03-04T11:16:08.727 に答える
1

1.0.0 バージョンを使用する必要はありませんでした。私は最新の宝石を使用しましたが、:assets グループにある場合、実際には (少なくとも EY では) アップロードされないようです。Gemfile の一般グループに追加する必要がありましたが、うまくいきました。

于 2014-10-29T19:44:10.503 に答える