1

Textile 文档说 Redmine(使用Textile)能够使用内联 HTML。这在文档网站上的测试中效果很好。在那里输入 HTML,它将被解析为 HTML 并像任何普通浏览器一样显示。

然而,在我们的 Redmine 安装中,我们似乎不能做同样的事情。在此处输入 HTML,它会按字面意思写入数据库。但是出来它是经过净化的,这意味着 HTML 标记被显示而不是由浏览器解释(<table>变成&lt;table&gt;)。

这可能是一个安全问题,默认情况下启用了清理。我发现了一个名为“sanitize_html”的选项的提示,但找不到有关如何将其配置为关闭的任何参考。我要补充一点,这只是一个内部 Redmine 安装,禁用此功能应该不是问题。我还发现来自特定版本的 RoR 会自动清理输出的提示,所以这可能是罪魁祸首,我不确定。

4

1 回答 1

2

我认为您需要定义允许标签的白名单。我在http://www.redmine.org/issues/843#note-15找到了这个提示,并执行了以下操作以在我们的实例中允许 iframe 标签:

  1. 在 redmine 的 config/initializers 目录中添加一个新文件。我认为文件名并不重要。我打电话给我的 allowed_tags.rb。
  2. 将此行放入文件中: RedCloth3::ALLOWED_TAGS << "iframe"
  3. 使权限和所有权与该目录中的其他 *.rb 文件匹配。
  4. 重启Redmine。
于 2013-06-11T15:47:13.990 回答