2016-04-22 56 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。不過謝謝。 –