2013-09-23 9 views
11

Plötzlich, wenn ich meine App lokal ausführe, bekomme ich doppelte Konsolenausgabe. Weiß jemand, was das verursacht haben könnte? Das Problem besteht sowohl beim Laufen Thin und EinhornDoppelter Konsolenausgang?

=> Booting Thin 
=> Rails 4.0.0 application starting in development on http://0.0.0.0:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
>> Thin web server (v1.5.1 codename Straight Razor) 
>> Maximum connections set to 1024 
>> Listening on 0.0.0.0:3000, CTRL+C to stop 
Started GET "/" for 127.0.0.1 at 2013-09-05 22:21:21 +0200 
Started GET "/" for 127.0.0.1 at 2013-09-05 22:21:21 +0200 
Processing by HomeController#index as HTML 
Processing by HomeController#index as HTML 
    Rendered home/index.html.erb within layouts/application (299.5ms) 
    Rendered home/index.html.erb within layouts/application (299.5ms) 
    Rendered layouts/_navbar.html.erb (38.3ms) 
    Rendered layouts/_navbar.html.erb (38.3ms) 
    Rendered layouts/_footer.html.erb (0.8ms) 
    Rendered layouts/_footer.html.erb (0.8ms) 
Completed 200 OK in 704ms (Views: 428.1ms | ActiveRecord: 52.4ms) 
Completed 200 OK in 704ms (Views: 428.1ms | ActiveRecord: 52.4ms) 

Das ist mein Gemfile

# Gemfile 
source 'https://rubygems.org' 

ruby '2.0.0' 

gem 'rails' 

gem 'actionpack-action_caching' 
gem 'asset_sync' 
gem 'authlogic', github: 'binarylogic/authlogic' 
gem 'bootstrap-sass', github: 'thomas-mcdonald/bootstrap-sass', branch: '3' 
gem 'coffee-rails' 
gem 'dalli' 
gem 'font-awesome-rails' 
gem 'highcharts-rails' 
gem 'jbuilder' 
gem 'jquery-rails' 
gem 'memcachier' 
gem 'newrelic_rpm' 
gem 'pg' 
gem 'prawn', '>= 1.0.0.rc2' 
gem 'prawn_rails' 
gem 'rack-mini-profiler', require: 'rack-mini-profiler' 
gem 'rack-timeout' 
gem 'rails-i18n' 
gem 'rails_12factor' # required by Heroku 
gem 'sass-rails' 
gem 'uglifier' 
gem 'yui-compressor' 

group :production do 
    gem 'justonedb' 
    gem 'unicorn-rails' 
end 

group :development do 
    gem 'annotate' 
    gem 'better_errors' 
    gem 'binding_of_caller' 
    gem 'hirb' 
    gem 'lol_dba' # To find table in need of indexes run 'lol_dba db:find_indexes' 
    gem 'mailcatcher' 
    gem 'pry' 
    gem 'quiet_assets' 
end 

group :test do 
    gem 'capybara' 
    gem 'capybara-webkit' 
    gem 'factory_girl_rails', require: false 
    gem 'fuubar' 
    gem 'rspec-rails' 
    gem 'rails_12factor' 
end 

Mein development.rb

# development.rb 
Beerclub::Application.configure do 
    # Settings specified here will take precedence over those in config/application.rb. 
    config.log_level = :debug 

    # In the development environment your application's code is reloaded on 
    # every request. This slows down response time but is perfect for development 
    # since you don't have to restart the web server when you make code changes. 
    config.cache_classes = false 

    # Do not eager load code on boot. 
    config.eager_load = false 

    # Show full error reports and disable caching. 
    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = false 

    # Don't care if the mailer can't send. 
    config.action_mailer.raise_delivery_errors = false 

    # Print deprecation notices to the Rails logger. 
    config.active_support.deprecation = :log 

    # Raise an error on page load if there are pending migrations 
    config.active_record.migration_error = :page_load 

    # Debug mode disables concatenation and preprocessing of assets. 
    # This option may cause significant delays in view rendering with a large 
    # number of complex assets. 
    config.assets.compress = false 
    config.assets.debug = true 
    config.serve_static_assets = true 
end 

und application.rb

require File.expand_path('../boot', __FILE__) 

require 'rails/all' 

# Require the gems listed in Gemfile, including any gems 
# you've limited to :test, :development, or :production. 
Bundler.require(:default, Rails.env) 

module Beerclub 
    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. 

    # 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 = 'Copenhagen' 

    # 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 = :da 

    # Enable the asset pipeline 
    config.assets.enabled = true 
    config.assets.version = '1.0' 

    # Needs to be false on Heroku 
    config.serve_static_assets = false 
    config.static_cache_control = "public, max-age=31536000" 

    # Add the fonts path 
    config.assets.paths << Rails.root.join('app', 'assets', 'fonts') 
    config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts') 

    # Precompile additional assets 
    config.assets.precompile += %w(*.svg *.eot *.woff *.ttf) 
    config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif) 
    end 
end 
+0

Werfen Sie einen Blick auf Ihre Edelsteine, stellen Sie sicher, dass Sie kein Duplikat drin haben – MZaragoza

+0

@MoisesZaragoza Bundler warnt normalerweise, wenn Sie ein doppeltes Juwel haben. –

Antwort

1

prüfen wenn Sie Code wie diesen in Ihrem haben Anwendung:

<img src="#"> 

Rails macht manchmal doppelte Datensätze aus diesem Grund auch.

Sie können versuchen, zu tun:

rake assets:clean 

Oder vielleicht, diese Zeile in development.rb Auskommentierung, funktionieren könnte:

config.active_support.deprecation = :log 

Als letzten Versuch, können Sie sogar versuchen, den Ordner zu ändern der Anwendung und starten Sie dann den Server, um das Ergebnis zu sehen.

Prost!

+1

Bitte nehmen Sie sich die Zeit, die richtige Grammatik in Ihren Antworten zu verwenden. Benutze nicht "du", wenn du "du" meinst. Eigennamen wie "Rails" werden groß geschrieben. Vielen Dank. –

+1

sicher, behalte das in minD – aelor

+0

Ich bin mir nicht sicher, ob das Auskommentieren von "config.active_support.deprecation =: log" eine gute Idee ist, noch werde ich das Problem lösen. Der Kommentar sagt "#Print Deprecation Notices to the Rails Logger". –

11

Ich habe bemerkt, dass dies wegen der rails_12factor Edelstein geschieht. Wenn Sie gem rails_12factor von Ihrem Gemfile kommentieren, sollte der doppelte Ausgang weggehen. Meine Vermutung ist, dass die doppelte Ausgabe nicht wichtig ist, um sich Sorgen zu machen, da Sie das Juwel für Heroku sowieso brauchen. Warum das rails_12factor Juwel verursacht, habe ich keine Ahnung.

12

in Bezug auf rails_12factor - wenn Sie die Zeile in der Gemfile ändern:

gem 'rails_12factor', group: :production 
Sie erhalten die doppelte Ausgabe in der Konsole während des Debuggen nicht mehr sehen

usw.

+0

http://static.tvtropes.org/pmwiki/pub/images/MTG-ThreadNecromancer_3198.jpg – Esse

+0

Mein Problem wurde behoben, danke, dass Sie sich die Zeit genommen haben, zu antworten. – Asciant

0

Von Ihrem Beispiel, Es zeigt, dass Duplikate inline geschehen, dh.

A 
A 
B 
B 
C 
C 

Wenn Sie stattdessen sehen, was zwei Back-to-back doppelte Anforderungen zu sein scheint, das heißt:

A 
B 
C 

A 
B 
C 

Sie stark @ aelor Antwort ein <img src="#"> oder ein ähnliches Selbst der Jagd nach in Betracht ziehen sollten -referenzielles URL-Tag Ich verbrachte Stunden, um herauszufinden, warum meine Bewerbung wurde erscheint zwei doppelte Anforderungen zu machen, und nach dem Lesen @ aelor Antwort fand ich

%link{href: "", rel: "shortcut icon"}/ 

in meinem Code! Es hat dazu geführt, dass jede Seite meiner Produktions-App doppelt gerendert wurde !!!! So schlecht für die Leistung und so nervig!

0

Ab Rails 4.2 und die Zeit dieses Postings ist die einzige Lösung, die mir bekannt ist, Rails_12factor aus der Gemfile zu entfernen.

Das Hinzufügen von group: :production verhindert nicht mehr die doppelte Protokollierung. Es ist eine offene Frage mit Heroku auf GitHub:

https://github.com/heroku/rails_stdout_logging/issues/1

0

Wir fanden dies, indem Sie den Rails-Server über

$ rails server 

statt

$ thin start 

verursacht wurde, als dieser mit , das Doppelprotokollierungsproblem verschwindet. Leider hatten wir keine Zeit, die Ursache zu sperren, wir haben nur die Art verändert, wie wir Thin gestartet und weitergemacht haben.