2016-03-01 29 views
1

我們有一個react-rails應用程序。不幸的是,該應用程序適用於本地開發,但在部署到heroku時不適用。當去我們的默認路徑上的應用程序,我們得到以下錯誤: ActionView::Template::Error (undefined method 'directory' for #<Sprockets::Manifest:0x007fef13200aa8>)Heroku Production - ActionView :: Template :: Error(未定義方法`目錄'for#<Sprockets :: Manifest:number>)

我們已經想通了,它發生在這條線,我們認爲: <%= react_component('NavBar', {}, {prerender: true}) %>

關於我們的應用程序有幾件事情:

  • 它使用browserify來編譯我們的js.jsx。
  • 我們使用RAILS_ENV=production bundle exec rake assets:precompile在刪除public/assets文件夾後進行預編譯。
  • 與本地工作rails sforeman 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' 

我們將不勝感激所有幫助。

回答

0

從StackOverflow上和github上的問題搜索數小時的解決方案似乎是消除

//= require react_ujs 
從您的application.js

在Assets文件夾中。

0

我剛纔在今天遇到了這個問題,並按照以下建議:https://github.com/reactjs/react-rails/issues/443#issuecomment-180544359。我還遇到了一個錯誤所以現在我修改了Heroku的配置(配置/環境/ staging.rb &配置/環境/ production.rb)現在使用

config.assets.compile = true 

用於與服務器端渲染工作得很好。反應軌道的人表示,他們已經完成解決這個問題的拉動請求,但我不認爲它已經發布。

相關問題