为什么我会收到此错误?
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)
bundle update
之前和之后的Gemfile.lock:https://gist.github.com/hopewise/35c2a98b13ac646b65770feb2f3c7ec8
完整追踪: https://gist.github.com/hopewise/551169518a5938647dc767d3de393cd4
我不知道哪个宝石造成了这个问题..
答案 0 :(得分:0)
这似乎是Haml用于解析less-rails
指令路径的image_tag
gem中的错误。
调用image_tag
时,less-rails
最终会尝试扫描文件所依赖的资产,但可能会无意中使用非文本文件。这会导致您遇到的错误。
项目中(有点过时的)分支上的fix exists,用于正确验证路径。我们可以参与测试:
gem 'less-rails', github: 'metaskills/less-rails', branch: 'depends_only_on_less_files'
有关详细信息,请参阅this ticket。正如那里所建议的那样,您可能需要验证代码是否使用了适当的图像路径。