【问题标题】:Why do I get invalid byte sequence in UTF-8为什么我在 UTF-8 中得到无效的字节序列
【发布时间】:2017-01-14 04:54:51
【问题描述】:

为什么会出现这个错误?

invalid byte sequence in UTF-8

用于加载图像:

= image_tag 'features_home/show1.png'

编辑

我注意到这个问题是在我做了bundle update 之后才发生的,任何图像都会出现错误。我会尝试在此处添加详细信息:

堆栈跟踪:

  Rendered home/home.html.haml within layouts/application (229.9ms)
Completed 500 Internal Server Error in 1047ms
invalid byte sequence in UTF-8 excluded from capture: DSN not set

ActionView::Template::Error (invalid byte sequence in UTF-8):
    81:           / Carousel items
    82:           .carousel-inner
    83:             .active.item
    84:               = image_tag 'features_home/show1.png'
    85:               -#.carousel-caption
    86:               -#  %h4
    87:               -#  %p
  app/views/home/home.html.haml:84:in `block in _app_views_home_home_html_haml__623651309533727079_70331260863620'
  app/views/home/home.html.haml:33:in `_app_views_home_home_html_haml__623651309533727079_70331260863620'
  lib/rack/seoredirect.rb:20:in `call'


  Rendered /Users/Apple/.rvm/gems/ruby-2.2.2@myapp/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_source.erb (115.6ms)
  Rendered /Users/Apple/.rvm/gems/ruby-2.2.2@myapp/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (23.1ms)
  Rendered /Users/Apple/.rvm/gems/ruby-2.2.2@myapp/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.7ms)
  Rendered /Users/Apple/.rvm/gems/ruby-2.2.2@myapp/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout (237.9ms)

Gemfile.lock 前后bundle update:https://gist.github.com/hopewise/35c2a98b13ac646b65770feb2f3c7ec8

完整的跟踪: https://gist.github.com/hopewise/551169518a5938647dc767d3de393cd4

虽然我不知道是哪个宝石导致了这个问题..

【问题讨论】:

  • 可能,这是相关的:stackoverflow.com/questions/2982677/…
  • 文件源文件中是否有隐藏控制字符?尝试删除该行并手动重新输入...
  • @Myst 源文件中没有隐藏控制字符..
  • 任何图像都会发生这种情况吗?什么 Ruby/Rails 版本?
  • 你能添加一个堆栈跟踪吗?

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

这似乎是 less-rails gem 中的一个错误,Haml 使用它来解析 image_tag 指令的路径。

在调用image_tag 时,less-rails 最终会尝试扫描文件所依赖的资产,但可能会无意中消耗非文本文件。这会导致您遇到错误。

fix exists 位于项目中(有些过时的)分支上,可正确验证路径。我们可以拉进来进行测试:

gem 'less-rails', github: 'metaskills/less-rails', branch: 'depends_only_on_less_files' 

请参阅this ticket 了解更多详细信息。正如那里所建议的那样,您可能需要验证代码是否使用了适当的图像路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-04
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2011-02-28
    • 2016-07-05
    相关资源
    最近更新 更多