生产中的Jammit gem错误

时间:2014-07-03 13:03:04

标签: ruby-on-rails digital-ocean jammit

我在部署生产时遇到以下错误。有人可以帮忙解决方案吗?谢谢。

ActionView::Template::Error (undefined method `include_stylesheets' for #<#<Class:0x00000003d8e0e8>:0x00000002d0f730>):
    2: %html
    3:   %head
    4:     %title= Settings.app_name
    5:     = include_stylesheets :canvas, :media => 'all'
    6:     = include_javascripts :canvas
    7:     = javascript_include_tag 'home/custom.js.coffee'
    8:     = csrf_meta_tags
  app/views/layouts/home.html.haml:5:in `_app_views_layouts_home_html_haml___3948606540755903120_32481960'
  app/controllers/website/home_controller.rb:11:in `home'

2 个答案:

答案 0 :(得分:1)

一段时间后我遇到了同样的问题

错误ActionView::Template::Error (undefined method 'include_stylesheets' for #<#<Class:0x00000003d14ae9>:0x00000002e02770>):

这意味着jammit gem未正确加载。为此,请检查您的Web应用程序

1。 gem包含在您的gem文件中

    gem "jammit"

2。 gem已加载到您的environment.rb文件中(在您的情况下,我会认为production.rb)     在环境文件

中查找以下代码
config.before_initialize do
end

并在 块之间的中写下config.gem "jammit"

3。和@Dimitri Jorge一样,你需要运行jammit b / w更新源代码和符号链接到新版本。因此,如果您在deploy.rb

中使用capistrano需要jammit
require 'jammit'

然后

  task :generate_assets, :roles => :web do
    run "cd #{your_path_to_deploy_directory}/current && bundle exec jammit"
  end
  after "deploy", "deploy:generate_assets"

我希望这能解决这个问题。得到;)

答案 1 :(得分:0)


来自Jammit documentation

  

在生产中,您需要在部署期间运行Jammit,在更新源和符号链接到新版本之间的某个位置。无论你是使用Capistrano,Vlad,还是只是很好的'ol Rake,添加一个调用jammit命令的步骤都不应该太难。

您是否运行了 jammit 命令?