这是一个非常具体的问题,我相信我已经找到了错误的来源,但我对如何解决它一无所知。基本上,我正在尝试将应用程序部署到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这个问题以及我可以采取哪些措施来防止这种情况发生。
答案 0 :(得分:0)
我发现一个解决方案,如果不是这个问题的答案,就是将highlight.js的Javascript资产服务外包给cloudflare cdn。虽然这并没有回答为什么这种不正确的转义发生的原始问题,但它最终最终解决了我的pdf渲染问题。
话虽这么说,我仍然会对为什么这个问题首先出现感兴趣。如果有的话,请随时借给我你的见解。