在Padrino Rack应用程序中,使用Sitespec生成二进制文件失败

时间:2017-01-07 15:47:56

标签: ruby rspec rack padrino

我正在开发一个使用Sitespec的项目,这是一个使用RSpec的静态站点生成器,并使用任何Rack应用程序。我选择Padrino作为Sitespec的Rack应用程序。

然后,当我rspec类型的某些网址Content-type: image/png时,我收到以下错误。

Failures:

  1) Sitespec GET public/images/simple-image1.png Generate a static image public/images/simple-image1.png
     Failure/Error: pathname.write(response.body)

     Encoding::UndefinedConversionError:
       "\x89" from ASCII-8BIT to UTF-8

Pathname.write(response.body)将尝试将其转换为UTF-8。

但是当我使用Sinatra而不是Padrino时,错误不会发生。

我制作了简单的样本项目进行比较:

问题:为什么Padrino项目失败,如何修复错误?

顺便说一句,做猴子补丁

module Sitespec
  class Artifact
    def generate_file
      pathname.binwrite(response.body)
    end
  end
end

消除了错误。 (将Pathname#write替换为Pathname#binwrite。)

0 个答案:

没有答案