使用wicked_pdf时,在Heroku中没有正确转义Highlight.js
Highlight.js not properly escaped in Heroku when using wicked_pdf
这是一个非常具体的问题,我相信我已经找到了错误的来源,但我不知道如何解决它。基本上,我正在尝试将一个应用程序部署到Heroku,允许用户以PDF格式下载他们的笔记(为此我使用了wicked_pdf gem)。PDF正在正常生成,但是当它返回时,在应该有注释的地方有一长串无意义的字符。PDF中的文本是这样开头的:
",rE:!0,sL:"javascript"}},{b:"",sL:"vbscript"} ...
并继续数页。事实证明,这段代码是我用于语法高亮显示的highlight.js库的一部分。当我深入研究上述子字符串的简化源代码时,我发现它前面有以下内容:
... ,starts:{e:"<'/script>",rE:true,sL:"javascript"} ...
,特别是 starts:{e:"<'/script>"
,它似乎被解释为一个文字结束标记,导致剩余的Javascript被呈现为文本。我想知道以前是否有人在使用heroku时遇到过这个问题,我可以采取什么措施来防止这种情况发生。
我找到了一个解决方案,如果不是这个问题的答案,就是将highlight.js的Javascript资产服务外包给cloudflare cdn。虽然这并没有回答为什么这个不正确的转义发生的最初问题,但它最终解决了我的pdf呈现问题。
话虽如此,我仍然对这个问题最初产生的原因感兴趣。
相关文章:
- Rails 3.2 js.erb文件转义js
- 无法在JS警报框中转义php变量
- 在Express中转义/:路由以加载js和css
- 转义括号在甜蜜.js宏名称
- JS:转义字符串末尾带有反斜杠的字符串,用于与jQuery函数一起使用
- JS 编译器删除正则表达式中的转义 () 字符
- 转义 JS 中的 [ ] 括号 - 尝试用键传递数组
- 如何转义JS和JSON之间的双引号
- 如何在 Node.js 中转义双引号
- js:转义特殊字符
- Angular.js 中的部分 HTML 字符串转义
- 灰尘.js转义字符
- 日语字符在 JS 中的转义和解码
- 如何从 JS 字符串中转义双引号和单引号
- backbone.js正在转义html
- 如何防止knockout.js数据绑定中的字符转义
- 是否有js函数将xml特殊字符替换为转义序列
- Handlebars.js使用noEscape选项禁用转义
- 输出PHP时如何转义JS变量
- Unicode字符转义序列在handle.js中打印不正确