【问题标题】:config.action_controller.asset_host only works for dynamic assets?config.action_controller.asset_host 仅适用于动态资产?
【发布时间】:2013-05-11 06:13:07
【问题描述】:

我正在使用 asset_sync gem 在 amazon s3 上托管我的资产。我已将 config.action_controller.asset_host 设置为指向我的 s3 存储桶,以便它将为我的 s3 资产提供服务。

但是,只有我的动态生成的资产从 s3 提供,其他静态资产(如图像)不从 s3 提供,它们只是从相对目录“/assets/filename.ext”提供。

如何让 rails 将 s3 用于我的静态资产,而不仅仅是动态生成的资产?

这是我的生产环境文件:

config.cache_classes = true

# Full error reports are disabled and caching is turned on  
config.consider_all_requests_local       = false  
config.action_controller.perform_caching = true

# Disable Rails's static asset server (Apache or nginx will already do this)   
config.serve_static_assets = false

# Compress JavaScripts and CSS   
config.assets.compress = true

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true

# Generate digests for assets URLs   
config.assets.digest = true

ENV['FOG_DIRECTORY'] = 'bucket'   
ENV['AWS_ACCESS_KEY_ID'] = 'key'   
ENV['AWS_SECRET_ACCESS_KEY'] = 'key'
config.action_controller.asset_host = "http://bucket.s3.amazonaws.com"

config.assets.prefix = "/assets"

config.assets.initialize_on_precompile = true

【问题讨论】:

  • 是否也设置了config.assets.enabled = true?

标签: ruby-on-rails ruby-on-rails-3 asset-pipeline


【解决方案1】:

你需要在production.rb中设置如下

ActionController::Base.asset_host = "http://bucket.s3.amazonaws.com"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多