2

在生产中部署时出现以下错误。有人可以帮忙解决吗?谢谢。

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'
4

2 回答 2

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"并在块的 do -- end之间写入

3. 并且正如@Dimitri Jorge 所说,您需要运行 jammit b/w 更新源代码并符号链接到新版本。所以如果你使用 capistrano 需要 jammitdeploy.rb

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"

我希望这能解决问题。明白了;)

于 2014-07-03T15:07:43.270 回答
0

Jammit 文档中:

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

您是否运行了jammit命令?

于 2014-07-03T13:13:23.543 回答