PDF.js:文件来源与查看者的不匹配

问题描述 投票:0回答:1

我正在尝试在浏览器中使用 PDF.js 从 Amazon-S3 上的存储桶提供 PDF 文件。我在S3中修改了相关的CORS政策。但是,我在浏览器中收到以下错误消息:

PDF.js v2.2.71 (build: 80135378)
Message: file origin does not match viewer's

经过搜索,我发现了几个相关的问题,比如这里的这个问题,因为这似乎是一个相对常见的问题。因此,很明显,我需要允许 Amazon S3 作为主机源。因此,我修改我的

viewer.js
文件以包含主机,如下所示:

var HOSTED_VIEWER_ORIGINS = ['null', 
'http://mozilla.github.io', 
'https://mozilla.github.io', 
'https://thepdfbucket.s3.eu-west- 
2.amazonaws.com'];

但是,如果我进行硬重新加载并检查源代码,我可以看到错误抛出在

webpack:///web/app.js
:

Uncaught (in promise) Error: file origin does not match viewer's
at validateFileURL (app.js:1482)
at webViewerInitialized (app.js:1541)

如果我检查

app.js
,我可以看到从
HOSTED_VIEWER_ORIGINS
文件映射的
viewer.js
数组。但是,它不包括修改后的数组,即我添加的
https://thepdfbucket.s3.eu-west-2.amazonaws.com

我无法让它发挥作用。我相信我可能有缓存问题,但是,我已经清除了所有浏览器的缓存,我什至从

PDF.js
再次构建了
github
并尝试在编译之前修改
viewer.js
文件。

如果我修改了

viewer.js
文件,并且
app.js
是从
viewer.js
映射而来的,但它没有反映最近的更改,我的结论是它一定是使用缓存文件。如何清除此缓存并让
app.js
反映我所做的更改?

我真的很感谢这里的任何帮助,因为我昨天花了整个昨天的时间来解决这个问题,但我无法理解这一切是如何结合在一起的。

非常感谢。

google-chrome amazon-s3 webpack pdf.js
1个回答
0
投票

我也遇到了这个问题并进行了调查。 PDF.js 版本:pdfjs-3.3.122

原因是在浏览器中调试时,调试信息来自viewer.js.map,而不是实际工作的viewer.js源代码。

最快的调试方法是删除viewer.js.map。

错误的原因可能是指定的值错误。 我就是这样。

不正确:https://google.com/ 正确:https://google.com

www.DeepL.com/Translator 翻译(免费版本)

© www.soinside.com 2019 - 2024. All rights reserved.