Nokogiri在解析Heroku时添加字符



Nokogiri似乎在nbsp字符的UTF-8转换方面存在问题。我发现这是一个与LibXML2相关的问题。Nokogiri建议将LibXML2升级到2.7.7,而不是在Heroku上运行的2.7.6。

有人知道我如何在Heroku上使用LibXML2 2.7.7(或更高版本)吗?

问题如下——

doc = Nokogiri::HTML("<html><p>Hi Hello</p></html>")
doc.inner_html
=> "<html><body><p>Hi Hello</p></body></html>"
doc.inner_html = "<p>Hello&nbsp;World</p>"
=> "<p>Hello&nbsp;World</p>"
doc.inner_html
=> "<p>Hello World</p>"

看起来这是相关的:https://github.com/sparklemotion/nokogiri/issues/306

这不会发生在我的本地机器上。Rails将"utf-8"设置为config.encoding,并且呈现的页面有一个utf-8字符集元标记。

在我的本地机器上,我使用limxml2 2.8.0运行Nokogiri 1.6,在Heroku上使用libxml2 2.7.6运行Nokoziri 1.6。

谢谢。

不幸的是,Heroku不支持在堆栈中安装额外的库或二进制文件。最好的解决方法是将这些产品提供给您的项目。您需要使用64位Linux版本才能在Heroku上运行;静态编译还有助于确保包含所需的任何依赖项。同样,对于依赖外部库的gem,我们建议静态编译gem并将其出售到您的项目中。

如果您确实希望尝试提供二进制、库或gem,您可以使用Heroku作为构建环境。Herokus的一位工程师创建了一个构建服务器,允许您上传源代码,运行编译步骤,然后下载生成的二进制文件。你可以在Github上找到这个名为"Vulcan"的项目。

这是更多说明的链接。。。https://devcenter.heroku.com/articles/buildpack-binaries

相关内容

  • 没有找到相关文章