1

react-rails アプリがあります。残念ながら、アプリはローカル開発では機能しますが、heroku にデプロイすると機能しません。アプリでデフォルト パスに移動すると、次のエラーが発生します。 ActionView::Template::Error (undefined method 'directory' for #<Sprockets::Manifest:0x007fef13200aa8>)

ビューのこの行で発生することがわかりました。 <%= react_component('NavBar', {}, {prerender: true}) %>

私たちのアプリに関するいくつかのこと:

  • browserify を使用して js.jsx をコンパイルします。
  • RAILS_ENV=production bundle exec rake assets:precompilepublic/assets フォルダーを削除した後に使用してプリコンパイルします。
  • と の両方rails sでローカルに動作しますforeman start
  • ブーストラップスプロケットを使用しています。削除されても、この問題は解決しません。

npm の依存関係は次のとおりです。

"dependencies": {
   "browserify": "^10.2.4",
   "browserify-incremental": "^1.5.0",
   "classnames": "^2.2.3",
   "reactify": "^1.1.0"
}

これが私たちのGemfileです

    source 'https://rubygems.org'
    gem 'rails', '4.2.3'
    gem 'rails-api'
    gem 'spring', :group => :development
    gem 'active_model_serializers', '~> 0.10.0.rc1'
    gem 'pg'
    gem 'devise'
    gem 'puma'
    gem 'twitter'
    gem 'react-rails', '~> 1.0'
    gem 'browserify-rails', '~> 0.9.1'
    gem 'bootstrap-sass', '~> 3.2.0'
    gem 'sass-rails', '~> 5.0', '>= 5.0.4'
    gem 'autoprefixer-rails'
    group :test  do
      gem 'rspec-rails'
      gem 'pry'
      gem 'faker'
      gem 'webmock'
    end
    group :development, :test do
      gem 'factory_girl_rails'
    end
    group :production do
      gem 'uglifier'
      gem 'rails_12factor'
      gem 'rspec'
    end
    ruby '2.2.4'

どうぞよろしくお願いいたします。

4

4 に答える 4

0

1.6.0にはバグがありreact-rails、1.6.1 で修正する必要があります。

パッチは次のとおりです。

https://github.com/reactjs/react-rails/pull/478

最新バージョンが機能しない場合は、react-rails リポジトリでイシューを開いてください!

于 2016-03-09T20:32:30.747 に答える
0

StackOverflow と github の問題に関する何時間もの検索からの解決策は、削除することのようです

//= require react_ujs

assets フォルダの application.js から。

于 2016-03-01T23:43:30.580 に答える
0

私は今日この同じ問題に遭遇し、https ://github.com/reactjs/react-rails/issues/443#issuecomment-180544359 の提案に従いました。まだエラーが発生していたので、とりあえず heroku の設定 (config/environments/staging.rb & config/environments/production.rb) を使用するように変更しました。

config.assets.compile = true

今のところ、サーバー側のレンダリングは正常に機能しました。反応レールの人々は、この問題を修正するためにプルリクエストを完了したと言っていましたが、まだリリースされていないと思います.

于 2016-03-01T21:23:14.900 に答える
0

潜在的に関連: rake assets:precompile undefined method directory? nil:NilClass の場合

これは、Rails アセット コンパイラ (Sprockets) が、プロジェクトのアセットの場所として指定したディレクトリを見つけられない場合に発生するエラーです。私の提案は、すべてのアセットが正常に heroku にデプロイされていることを確認してから、ページに含めるためにプロジェクト内のアセットを参照するときにパスが正しく設定されていることを確認することです。

特にReact-Railsに関するEric Cの回答も参照してください。

于 2016-03-01T21:57:47.347 に答える