Chrome PDF.js:文件源与查看器的不匹配

0s7z1bwu  于 2023-02-10  发布在  Go
关注(0)|答案(1)|浏览(298)

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

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

经过搜索,我发现了几个相关的问题,such as this question here,因为这似乎是一个相对常见的问题。因此,很明显,我需要允许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文件Map而来,但是,它不包括修改后的数组,即我添加的https://thepdfbucket.s3.eu-west-2.amazonaws.com
我不能让这个工作。我相信我可能有一个缓存问题,但是,我已经清除了所有的浏览器的缓存,我甚至从github重新构建PDF.js,并试图修改viewer.js文件,在编译之前。
如果我修改了viewer.js文件,并且app.js是从viewer.jsMap而来的,但是它没有反映最近的更改,那么我的结论是它一定是使用了缓存文件。我如何清除这个缓存,并让app.js反映我所做的更改?
我真的很感激这里的任何帮助,因为我花了整个昨天在这个问题上,我不能得到我的头周围如何这一切配合在一起。
非常感谢。

idv4meu8

idv4meu81#

我也遇到了这个问题,并进行了调查。PDF.js版本:pdfjs-3.3.122
原因是在浏览器中调试时,调试信息来自viewer.js.map,而不是实际工作的viewer.js源代码。
最快的调试方法是删除viewer.js.map。
也许错误的原因是一个错误的指定值。这是我的情况。
错误:https://google.com/正确:https://google.com
www.DeepL.com/Translator翻译(免费版)

相关问题