Rails app moved to production server gives “dump f

2019-03-24 08:47发布

问题:

I've just moved my rails app from the development to deployment server. I've installed passenger, but I wanted to try with rails s to make sure all was running fine (this is the first time I develop and deploy a rails application).

Specs are: Ruby 1.9.3 with RVM, mod_passenger, Rails 3.2.3. All installed correctly and I've also enabled the Apache module. By the way something is going wrong (passenger keeps sayng "Error message: Unknown key: class".)

Running rails s is giving a weird error listed above dump format error for symbol(0x45)

Processing by Devise::SessionsController#new as HTML
  Rendered devise/_links.haml (2.2ms)
  Rendered devise/sessions/new.html.haml within layouts/application (11.8ms)
Completed 500 Internal Server Error in 110ms

ActionView::Template::Error (dump format error for symbol(0x45)):
    8:     / HTML5 shim, for IE6-8 support of HTML elements
    9:     /[if lt IE 9]
    10:       = javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js"
    11:     = stylesheet_link_tag "application", :media => "all"
    12:     /%link(href="images/favicon.ico" rel="shortcut icon")
    13:     /%link(href="images/apple-touch-icon.png" rel="apple-touch-icon")
    14:     /%link(href="images/apple-touch-icon-72x72.png" rel="apple-touch-icon" sizes="72x72")
  app/views/layouts/application.html.haml:11:in `_app_views_layouts_application_html_haml__3524679841439843142_22055600'

What does it mean? Googling it seems a flash[] error but I can't really understand what should I do here.

Waiting for some suggestion, thank you!

回答1:

Had the same problem. Try removing your [app]/tmp dir. It seems to be trying to unmarshal some borked files.



回答2:

Change an asset from new.js to new.js.coffee and received this error when trying to render a view which was trying to render new.js:

ActionView::Template::Error (dump format error for symbol(0x6d))

I figured it was something related to the tmp files (thanks to the comments in this thread). I ran:

bundle exec rake tmp:clear

And I was good to go!



回答3:

The problem here was that I inserted "haml-rails" under the :assets pipeline, so it was not able to find HAML on the production environment.

To be honest I'm surprised that just removing javascript_include_tag and stylesheet_link_tag it was still rendering the html.

By the way I fixed it by moving haml-rails out from the assets scope.



回答4:

I ran into the same issue when I removed a bunch of unused .coffee files from my assets.

I resolved the issue by running:

bundle exec rake assets:precompile RAILS_ENV=<environment>

And then restarting the server.



回答5:

This doesn't look like a passenger error, my guess would be a problem with your HAML. Try removing 8, 9, and 10, and see if it renders. If it does, that will let you narrow down the problem.



回答6:

I had the same problem, and the fix was to run git clean -dfx