2016-04-22 118 views
0

我有一个使用S3存储桶存储预编译资产的rails应用程序。这对于生产阶段非常有用。使用CDN资产管道的新阶段Rails资产路径不正确

我已经创建了一个名为'staging'的新阶段,它与生产阶段相同。我已经复制了S3存储桶并给出了不同的名称。

但是,当我使用临时环境部署我的rails应用程序时,应用资产路径设置为生产阶段路径。

如何获取分期资产以指向陈述资产路径?

这里是我的配置/环境/ staging.rb

Rails.application.configure do 
# Settings specified here will take precedence over those in config/application.rb. 

# Read from yml file 
config.before_configuration do 
    env_file = File.join(Rails.root, 'config', 'local_env.yml') 
    YAML.load(File.open(env_file)).each do |key, value| 
    ENV[key.to_s] = value 
    end if File.exists?(env_file) 
end 

# Code is not reloaded between requests. 
config.cache_classes = true 

# Eager load code on boot. This eager loads most of Rails and 
# your application in memory, allowing both threaded web servers 
# and those relying on copy on write to perform better. 
# Rake tasks automatically ignore this option for performance. 
config.eager_load = true 

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

# Enable Rack::Cache to put a simple HTTP cache in front of your application 
# Add `rack-cache` to your Gemfile before enabling this. 
# For large-scale production use, consider using a caching reverse proxy like 
# NGINX, varnish or squid. 
# config.action_dispatch.rack_cache = true 

# Disable serving static files from the `/public` folder by default since 
# Apache or NGINX already handles this. 
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 

# Compress JavaScripts and CSS. 
config.assets.js_compressor = :uglifier 
# config.assets.css_compressor = :sass 

# Do not fallback to assets pipeline if a precompiled asset is missed. 
config.assets.compile = true 

# Asset digests allow you to set far-future HTTP expiration dates on all assets, 
# yet still be able to expire them through the digest params. 
config.assets.digest = true 

# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb 

# Specifies the header that your server uses for sending files. 
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache 
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX 

# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 
# config.force_ssl = true 

# Use the lowest log level to ensure availability of diagnostic information 
# when problems arise. 
config.log_level = :debug 

# Prepend all log lines with the following tags. 
# config.log_tags = [ :subdomain, :uuid ] 

# Use a different logger for distributed setups. 
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) 

# Use a different cache store in production. 
# config.cache_store = :mem_cache_store 

# Enable serving of images, stylesheets, and JavaScripts from an asset server. 
# config.action_controller.asset_host = 'http://assets.example.com' 
ENV["AWS_ASSET_DIRECTORY"] = 'website-assets-staging' 
config.action_controller.asset_host = "//#{ENV["AWS_ASSET_DIRECTORY"]}.s3.amazonaws.com" 

# Ignore bad email addresses and do not raise email delivery errors. 
# Set this to true and configure the email server for immediate delivery to raise delivery errors. 
# config.action_mailer.raise_delivery_errors = false 

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to 
# the I18n.default_locale when a translation cannot be found). 
config.i18n.fallbacks = true 

# Send deprecation notices to registered listeners. 
config.active_support.deprecation = :notify 

# Use default logging formatter so that PID and timestamp are not suppressed. 
config.log_formatter = ::Logger::Formatter.new 

# Do not dump schema after migrations. 
config.active_record.dump_schema_after_migration = false 

config.action_mailer.default_url_options = {:host => "staging.website.com.au"} 
config.action_mailer.delivery_method = :smtp 
end 

任何帮助将不胜感激。

+0

看来升级服务器正在生产阶段运行应用程序。不知道为什么它会这样做... –

回答

0

这是一个很长的镜头,但是您是否在托管网站的提供商在“生产”模式下运行网站?例如,如果您使用的是Heroku,即使您有单独的登台应用程序,一切都是“生产”。

+0

我的服务器由BinaryLane托管,我不使用Heroku。不过谢谢。 –