2016-09-02 62 views
11

Sadece Rails 4.2.7 den Rails 5.0.0.1 benim app yükseltilmiş bir dizin olmalıdır. Herşeyin kapandığından ve yaptığımdan emin olmak için RailsDiff'u kullandım. Şimdiye kadar her şey benim app yükleme kadar iyi çalıştı.require_tree argümanı Rails 5 yükseltilmiş app

Şimdi bu hata görüyorum:

Sprockets::ArgumentError at/
require_tree argument must be a directory 

Bu benim application.css: Bu

/* 
* This is a manifest file that'll be compiled into application.css, which will include all the files 
* listed below. 
* 
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. 
* 
* You're free to add application-wide styles to this file and they'll appear at the bottom of the 
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS 
* files in this directory. Styles in this file should be added after the last require_* statement. 
* It is generally better to create a new file per style scope. * 
*= require_tree . 
*= require_self 
*/ 

benim application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files 
// listed below. 
// 
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. 
// 
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 
// compiled file. JavaScript code in this file should be added after the last require_* statement. 
// 
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details 
// about supported directives. 
// 
//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 

Bu sunucusu günlük neye benzediği:

Started GET "/" for ::1 at 2016-09-02 09:08:19 -0500 
    ActiveRecord::SchemaMigration Load (1.5ms) SELECT "schema_migrations".* FROM "schema_migrations" 
    User Load (1.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 2], ["LIMIT", 1]] 
Processing by ProfilesController#index as HTML 
    Rendering profiles/index.html.erb within layouts/application 
    Profile Load (1.6ms) SELECT "profiles".* FROM "profiles" 
    Rendered profiles/index.html.erb within layouts/application (45.8ms) 
Completed 500 Internal Server Error in 367ms (ActiveRecord: 6.3ms) 


DEPRECATION WARNING: #original_exception is deprecated. Use #cause instead. (called from initialize at /.rvm/gems/[email protected]/gems/better_errors-2.1.1/lib/better_errors/raised_exception.rb:7) 
DEPRECATION WARNING: #original_exception is deprecated. Use #cause instead. (called from initialize at /.rvm/gems/ruby-2.3.1myapp/gems/better_errors-2.1.1/lib/better_errors/raised_exception.rb:8) 

Sprockets::ArgumentError - require_tree argument must be a directory: 
    sprockets (3.7.0) lib/sprockets/directive_processor.rb:182:in `rescue in block in process_directives' 
    sprockets (3.7.0) lib/sprockets/directive_processor.rb:179:in `block in process_directives' 
    sprockets (3.7.0) lib/sprockets/directive_processor.rb:178:in `process_directives' 

Hiçbir türde eklenti kullanmıyorum. Oldukça basit/vanilya uygulamasıdır. Tek stil varsayılan scaffold.scss'dur.

Buna neden olabilir?

cevap

25

Sonunda anladım. Bu yüzden yükseltmeyi yapıyorum, RailsDiff bana bir şey kaçırdığımı söylemedi.

Yani hata mesajı Ancak, ne yapmam unuttum boş bir dizin yaratmaktı, yanlış değildi.

//= require_tree ./channels 

Ancak, ben aslında bu klasör oluşturmak için unuttum: Benim app/assets/javascripts/cable.js yılında

, aşağıdaki vardı.

Bunu düzeltmek için, tek yapmam gereken channels adı verilen boş bir klasör oluşturmaktı. Ayrıca, git yeni dizin içinde boş dizinleri yoksayar, ben de .keep adlı boş bir dosya oluşturmak zorunda kaldım.

yüzden aşağıdakileri yaptım bir kere, her şey harika çalıştı:

  • klasörü oluşturun:
  • app/assets/javascripts/channels o klasör içindeki boş dosya oluşturun: app/assets/javascripts/channels/.keep

Şimdi herşey mükemmel çalışıyor.