1

似乎 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 的 Nokogiri 1.6。

谢谢。

4

1 回答 1

0

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

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

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

于 2013-08-01T22:46:45.363 回答