Matt16749
Matt16749

Reputation: 119

Heroku Rails 4 App Assets not loaded over AWS Cloudfront

I'm having a problem compiling my Rails 4 app assets over AWS Cloudfront. It worked before but I think I may have done something to my production.rb or application.rb since this is a more recent issue. My application is hosted on Heroku. I've enclosed my production and application files below. Hopefully I formatted the question right. Please and thank you!

Production.rb

SomeAPP::Application.configure do
  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.compress = true
  config.assets.js_compressor = :uglifier
  config.assets.css_compressor = :sass
  config.assets.compile = false
  config.assets.digest = true
  config.assets.version = '1.2'
  config.force_ssl = true
  config.log_level = :info
  config.static_cache_control = "public, max-age=31536000"
  config.action_controller.asset_host = ENV["CLOUDFRONT"]
  config.assets.precompile += [
    "rails_admin/startups.css",
    "ckeditor/ckeditor.js",
    "landingpage.css.erb",
    "aboutpage.css",
    "faq.css",
    "login.css",
    "logout.css"
  ]
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.default_url_options = { :host => ENV['SERVER_HOST'] }
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
  config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => ENV['AWS_BUCKET'],
      :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
      :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
    },
    :s3_protocol => 'https'
  }
  if ENV["REDISCLOUD_URL"]
    config.cache_store = :redis_store, ENV["REDISCLOUD_URL"], { expires_in: 90.minutes }
  end
end

Application.rb

require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(:default, Rails.env)
module SomeApp
  class Application < Rails::Application
    config.before_initialize do
      $firm_name = ENV["SOMEAPPFIRM"]
      $default_from = ENV["SOMEDEFAULT"]
      $domain_name = ENV["SOMEDOMAINNAME"]
      $grace_period_hours = 5
      $mail_env = ""
      if ENV["ENV"].length > 0
        $mail_env = " (#{ENV["ENV"]}) "
      end
    end
  end
end
DEFAULT_ADMIN_TIMEZONE = ENV['DEFAULT_ADMIN_TIMEZONE'] || 'Pacific Time (US & Canada)'

Upvotes: 1

Views: 451

Answers (1)

Matt16749
Matt16749

Reputation: 119

Anndd...I'm an idiot. in production.rb I need to change

config.assets.compile = true

That is all.

Upvotes: 1

Related Questions