Hi Mazembo Whatever your problem with gems may be, I cannot imagine ever using different versions of Ruby in development versus production (at least major version differences like 1.9 and 2.0). That sounds like a bad tradeoff, just to use some gem. I would find another way to use that gem or find an alternate gem. And as a last resort, I would consider hand-coding my own solution before I would use different versions of Ruby between dev and production.
Per your asset compilation problem... Try running the asset pre-compilation with the --trace flag and perhaps post those results on this thread. On Sun, Mar 1, 2015 at 8:35 AM, Mazembo <[email protected]> wrote: > I need help to sort out problems of asset pipeline with my app. Can anyone > have look at what I am missing? Thanks in advance. > > I am using the following rails 3.2.13, ruby 1.9.3 (for development) and > ruby 2.0.0 (for production on heroku). ( I am using a different version of > ruby on production as a gem called bybosa could not be installed with the > development version of ruby… I am not sure if this is the source of the > problem. Probably not…). > > I have precompile the assets locally running: bundle exec rake > assets:precompile RAILS_ENV=production. The assets get precompiled well and > placed in public/assets/ directory. However, this process runs with an > error : "can't dump anonymous class" errors. This seems to be associated > with sass and sprockets… but the compilation get completed with files > placed in the public/assets directory. The original images, and the same > image names with long hash extensions. I commit everything to git and > deploy from git to heroku. Heroku does not run assets compilation as there > is a manifest file in the public/assets directory. > > The application gets deployed well, but the images are not served > properly. CSS and JS are served. The styling of the layout is as expected > at least. So no problem with CSS and JS (that I can note). > > *The website as it now appears * > > *http://www.cdh-uk.org/ <http://www.cdh-uk.org/>* > > > > *The github app: * > > *https://github.com/mazembo/cdhuk <https://github.com/mazembo/cdhuk>* > > > > Only two images are served. Other 10 images are not served. Heroku logs > shows that the error 404 not found for those images. And the path for those > images are /assets/image_name. The two images that are served have these > paths /assets/image_name + hash(combination of letters and numbers produced > by the asset pipeline during the precompile operation). When you inspect > elements on the webpage, only those two images that get displayed have the > long hash after the image name. All othe images do not have the hash… > > I wonder why the webserver is not able to find the other images. Why is > the webserver not pointing to the images as precompile by the asset > pipeline with the long hash extension? > > In the development environment all images are well displayed. Here, images > are referenced by their simple name (without the asset pipeline > extensions). > > *My gemfile * > > source 'http://rubygems.org' > > > > ruby "2.0.0" > > > > gem 'rails'*, *'3.2.13' > > > > # Bundle edge Rails instead: > > # gem 'rails', :git => 'git://github.com/rails/rails.git' > > > > group *:development**, **:test**, **:production **do* > > # gem 'sqlite3' > > gem 'pg' > > *end* > > > > > > # Gems used only for assets and not required > > # in production environments by default. > > #group :assets do > > # gem 'sass-rails', '~> 3.2.3' > > # gem 'coffee-rails', '~> 3.2.1' > > # gem 'twitter-bootstrap-rails' > > # See https://github.com/sstephenson/execjs#readme for more supported > runtimes > > # gem 'therubyracer', :platforms => :ruby > > > > gem 'uglifier'*, *'>= 1.0.3' > > #end > > # Use SCSS for stylesheets > > gem 'bootstrap-sass'*, *'3.1.1.0' > > gem 'sass-rails'*, *'>= 3.2' > > > > gem 'jquery-rails' > > > > gem 'turbolinks' > > gem 'rails_12factor'*, *group: *:production* > > # To use ActiveModel has_secure_password > > # gem 'bcrypt-ruby', '~> 3.0.0' > > > > # To use Jbuilder templates for JSON > > # gem 'jbuilder' > > > > # Use unicorn as the app server > > # gem 'unicorn' > > > > # Deploy with Capistrano > > # gem 'capistrano' > > > > # To use debugger > > # gem 'debugger' > > > > # Refinery CMS > > gem 'refinerycms'*, *'~> 2.1.0' > > > > # Optionally, specify additional Refinery CMS Extensions here: > > gem 'refinerycms-acts-as-indexed'*, *'~> 1.0.0' > > gem 'refinerycms-blog'*, *'~> 2.1.0' > > gem 'refinerycms-inquiries'*, *'~> 2.1.0' > > gem 'refinerycms-search'*, *'~> 2.1.0' > > gem 'refinerycms-page-images'*, *'~> 2.1.0' > > gem "refinerycms-news"*, *'~> 2.1.0' > > #gem 'refinerycms-portfolio', :git => 'git:// > github.com/refinery/refinerycms-portfolio.git', :branch => '2-0-stable' > > gem 'refinerycms-videojs' > > #gem 'refinerycms-memberships', '2.0' > > #gem 'refinerycms-calendar', '~>2.0.0' > > #gem 'refinerycms-bootstrap', :github => > 'fernandoaleman/refinerycms-bootstrap', :branch => 'master' > > > > > > > > group *:development **do* > > gem 'jazz_hands' > > *end* > > *My config/application.rb file * > > require File*.*expand_path*(*'../boot'*, **__FILE__**)* > > > > # Pick the frameworks you want: > > require "active_record/railtie" > > require "action_controller/railtie" > > require "action_mailer/railtie" > > require "active_resource/railtie" > > require "sprockets/railtie" > > # require "rails/test_unit/railtie" > > > > *if defined?**(*Bundler*)* > > # If you precompile assets before deploying to production, use this line > > Bundler*.*require*(**Rails*.*groups*(**:assets **=> *%w(development > test)*))* > > # If you want your assets lazily compiled in production, use this line > > # Bundler.require(:default, :assets, Rails.env) > > *end* > > > > *module *Renaissance2 > > *class *Application < Rails*::*Application > > # Settings in config/environments/* take precedence over those > specified here. > > # Application configuration should go into files in > config/initializers > > # -- all .rb files in that directory are automatically loaded. > > > > # Custom directories with classes and modules you want to be > autoloadable. > > # config.autoload_paths += %W(#{config.root}/extras) > > > > # Only load the plugins named here, in the order given (default is > alphabetical). > > # :all can be used as a placeholder for all plugins not explicitly > named. > > # config.plugins = [ :exception_notification, :ssl_requirement, :all ] > > > > # Activate observers that should always be running. > > # config.active_record.observers = :cacher, :garbage_collector, > :forum_observer > > > > # Set Time.zone default to the specified zone and make Active Record > auto-convert to this zone. > > # Run "rake -D time" for a list of tasks for finding time zone names. > Default is UTC. > > # config.time_zone = 'Central Time (US & Canada)' > > > > # The default locale is :en and all translations from > config/locales/*.rb,yml are auto loaded. > > # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', > '*.{rb,yml}').to_s] > > # config.i18n.default_locale = :de > > > > # Configure the default encoding used in templates for Ruby 1.9. > > config*.*encoding = "utf-8" > > > > # Configure sensitive parameters which will be filtered from the log > file. > > config*.*filter_parameters += *[**:password**]* > > > > # Enable escaping HTML in JSON. > > config*.*active_support*.*escape_html_entities_in_json = true > > > > # Use SQL instead of Active Record's schema dumper when creating the > database. > > # This is necessary if your schema can't be completely dumped by the > schema dumper, > > # like if you have constraints or database-specific column types > > # config.active_record.schema_format = :sql > > > > # Enforce whitelist mode for mass assignment. > > # This will create an empty whitelist of attributes available for > mass-assignment for all models > > # in your app. As such, your models will need to explicitly whitelist > or blacklist accessible > > # parameters by using an attr_accessible or attr_protected > declaration. > > config*.*active_record*.*whitelist_attributes = true > > > > # Enable the asset pipeline > > config*.*assets*.*enabled = true > > > > # Version of your assets, change this if you want to expire all your > assets > > config*.*assets*.*version = '1.0' > > config*.*assets*.*initialize_on_precompile = true > > *end* > > *end* > > > > > > *My config/environment/production.rb* > > Renaissance2*::*Application*.*configure *do* > > # Settings specified here will take precedence over those in > config/application.rb > > > > # Code is not reloaded between requests > > 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 = true > > > > # 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 > > > > # Defaults to nil and saved in location specified by > config.assets.prefix > > # config.assets.manifest = YOUR_PATH > > > > # 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 > > > > #for heroku > > config*.*action_dispatch*.*x_sendfile_header = nil > > # Force all access to the app over SSL, use Strict-Transport-Security, > and use secure cookies. > > # config.force_ssl = true > > > > # See everything in the log (default is :info) > > # 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" > > > > # Precompile additional assets (application.js, application.css, and > all non-JS/CSS are already added) > > # config.assets.precompile += %w( search.js ) > > > > # Disable delivery errors, bad email addresses will be ignored > > *if *config*.*respond_to?*(**:action_mailer**)* > > # config.action_mailer.raise_delivery_errors = false > > *end* > > > > # Enable threaded mode > > # config.threadsafe! > > > > # Enable locale fallbacks for I18n (makes lookups for any locale fall > back to > > # the I18n.default_locale when a translation can not be found) > > config*.*i18n*.*fallbacks = true > > > > # Send deprecation notices to registered listeners > > config*.*active_support*.*deprecation = *:notify* > > > > # Log the query plan for queries taking more than this (works > > # with SQLite, MySQL, and PostgreSQL) > > # config.active_record.auto_explain_threshold_in_seconds = 0.5 > > *end* > > > > *What I have tried without success:* > > *1. **I tried to precompile the assets many times, but nothing > changes* > > *2. **I tried to disable the use of the asset pipeline in the > production, but it did not change anything * > > *3. **I tried suggestions on this stackoverflow issue: > http://stackoverflow.com/questions/25159841/rails-3-2-13-assets-are-not-displayed-in-production > <http://stackoverflow.com/questions/25159841/rails-3-2-13-assets-are-not-displayed-in-production> > Without success* > > *4. **I have also looked at this heroku support page: > https://devcenter.heroku.com/articles/rails-asset-pipeline > <https://devcenter.heroku.com/articles/rails-asset-pipeline>* > > > > > > Mazembo Mavungu Eddy, PhD > > -- > -- > SD Ruby mailing list > [email protected] > http://groups.google.com/group/sdruby > --- > You received this message because you are subscribed to the Google Groups > "SD Ruby" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- -- SD Ruby mailing list [email protected] http://groups.google.com/group/sdruby --- You received this message because you are subscribed to the Google Groups "SD Ruby" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
