在Rails 3.2.22,Ruby 2.2.2中,当我发出请求时,我得到log writing failed. "\xCB" from ASCII-8BIT to UTF-8
(以及与“\ xD9”类似的错误)作为Rails日志中的唯一输出。从字面上看,这是启动并向服务器发出一个请求时的开发日志:
>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3001, CTRL+C to stop
log writing failed. "\xCB" from ASCII-8BIT to UTF-8
log writing failed. "\xD9" from ASCII-8BIT to UTF-8
log writing failed. "\xD9" from ASCII-8BIT to UTF-8
返回总是只是一个“未找到。”
这是在对Dragonfly gem更新之后出现的(它带来了一次轻微的Fog更新),但我不知道除非配置文件严重受损,否则会导致这种情况。 Rspec测试运行,但使用Capybara从服务器请求页面的Cucumber功能失败(因为它们只是“未找到”。)
这类似于“rake test and error : log writing failed. "\xE2" from ASCII-8BIT to UTF-8”,但该问题的公认答案只是“找出生成UTF-8字符串并修复其编码的内容”,而且我没有好的线索来搞清楚是什么产生了字符串。
ETA:蜻蜓更新的确是个问题。我退回更新,然后逐步完成their update guide,虽然我仍然从服务器得到相同的响应,但Dragonfly现在正在登录到Rails记录器,我正在
DRAGONFLY: couldn't json decode string - got 795: unexpected token at 'i٢'
所以蜻蜓是某种程度上的罪魁祸首。
ETA2:关注a similar issue in Dragonfly's Github repo后,我在我的Dragonfly配置中添加了allow_legacy_urls true
,现在错误是这样的:
DRAGONFLY: couldn't marshal decode string - got incompatible marshal file format (can't be read)
format version 4.8 required; 105.217 given
...这几乎与“Ruby on Rails - incompatible marshal file format”中的错误完全相同(“给定的”Marshal版本不同),但那里的解决方案没有帮助我。
答案 0 :(得分:0)
也许你有一些非标准的美国英语角色。
您可以使用
# -*- coding: utf-8 -*-
在ruby文件的顶部导致问题。
答案 1 :(得分:0)
最后,似乎问题可能是某种未刷新的缓存。我把分支放在一边几天来解决其他问题,在此期间我停止并在其他分支上多次重启开发服务器。当我回到这个分支时,我回到了Dragonfly升级之前,然后运行了我想要做的所有其他宝石更新,最后进行了Dragonfly升级natural_key
。这次我没有问题。
所以我最好的猜测是,从不完整的升级中遗留了缓存项(或缓存映射),这些项基本上使缓存无效,导致报告的错误。