19

我刚刚将我的 Rails 应用程序从开发服务器移到了部署服务器。我已经安装了乘客,但我想尝试rails s确保一切运行良好(这是我第一次开发和部署 Rails 应用程序)。

规格是:带有 RVM 的 Ruby 1.9.3、mod_passenger、Rails 3.2.3。所有安装正确,我还启用了 Apache 模块。顺便说一句,出了点问题(乘客一直说“错误消息:未知键:类”。)

运行rails s给出了上面列出的奇怪错误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'

这是什么意思?谷歌搜索似乎是一个 flash[] 错误,但我真的不明白我应该在这里做什么。

等待一些建议,谢谢!

4

6 回答 6

46

有同样的问题。尝试删除您的 [app]/tmp 目录。它似乎试图解组一些 borked 文件。

于 2012-06-23T14:12:17.187 回答
26

将资产从 new.js 更改为 new.js.coffee 并在尝试渲染试图渲染 new.js 的视图时收到此错误:

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

我认为这与 tmp 文件有关(感谢此线程中的评论)。我跑了:

bundle exec rake tmp:clear

我很高兴去!

于 2013-03-21T22:51:19.303 回答
0

这里的问题是我在管道下插入了“haml-rails” :assets,所以它无法在生产环境中找到 HAML。

老实说,我很惊讶只是删除javascript_include_tagstylesheet_link_tag仍然在渲染 html。

顺便说一句,我通过haml-rails移出assets范围来修复它。

于 2012-05-13T10:25:50.263 回答
0

当我从资产中删除一堆未使用的 .coffee 文件时,我遇到了同样的问题。

我通过运行解决了这个问题:

bundle exec rake assets:precompile RAILS_ENV=<environment>

然后重启服务器。

于 2012-05-25T13:52:52.677 回答
-1

我有同样的问题,修复是运行git clean -dfx

于 2012-06-17T16:53:04.443 回答
-1

这看起来不像是乘客错误,我猜你的 HAML 有问题。尝试删除 8、9 和 10,看看它是否呈现。如果是这样,那将使您缩小问题的范围。

于 2012-05-11T17:19:17.573 回答