在今天升级到Ruby-1.9.3-p392之后,REXML在尝试检索特定大小的XML响应时抛出运行时错误 - 一切正常并且在接收25个XML记录时没有引发错误,但是一旦某个XML响应达到长度阈值,我得到这个错误:
Error occurred while parsing request parameters.
Contents:
RuntimeError (entity expansion has grown too large):
/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/rexml/text.rb:387:in `block in unnormalize'
Run Code Online (Sandbox Code Playgroud)
我意识到最新的Ruby版本已经改变了:http: //www.ruby-lang.org/en/news/2013/02/22/rexml-dos-2013-02-22/
作为一个快速修复,我已经将大小更改REXML::Document.entity_expansion_text_limit为更大的数字,错误就消失了.
是否存在风险较低的解决方案?
我在我的一个Rails视图中有一些逻辑,表明如果table我要打印超过7行,请div在样式周围创建table一个min-height样式,以确保下面的页脚table到达页面2的末尾,而不是第1页.
我在许多浏览器中测试了这个逻辑,包括:Chrome,Safari和IE(!),它们都按预期工作.然而,Firefox正在div和之前添加一个讨厌的分页符table.我曾尝试通过在加入这个CSS样式避免此分页符div并在table:page-break-before: avoid;和这个新的Firefox风格:break-before: avoid;,但似乎并没有影响到印刷在这个分页符.还有其他想法吗?Firefox在打印时会在大div之前自动添加分页符吗?
<div style='min-height: 1150px;'>
<table>
blah blah table stuff...
</table>
</div>
Run Code Online (Sandbox Code Playgroud)