首页 > 解决方案 > pdf.js 升级到 1.9.426 版本后找不到 pdf.worker.js

问题描述

我们之前使用的版本是 1.1.114,我们的设置运行良好。我们将 pdf.js 和 pdf.worker.js 放在同一个目录下(Scripts/Libs/Common),在我们的 main.js 上,我们定义了 PDFJS.workerSrc 的路径。

我们决定升级到 v1.9.426,因为我们已经解决了一些问题,但问题是:控制台错误

出现此错误是因为 pdf.js 找不到 pdf.worker.js。目前,我的解决方法是将 pdf.js 和 pdf.worker.js 上的路径更新到我们放置这两个文件的目录。这些是我更新的部分:

if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
   workerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
}
var dynamicLoaderSupported = typeof requirejs !== 'undefined' && 
requirejs.load;
fakeWorkerFilesLoader = useRequireEnsure ? function (callback) {
    require.ensure([], function () {
    var worker;
    worker = require('./pdf.worker.js');
    callback(worker.WorkerMessageHandler);
});
} : dynamicLoaderSupported ? function (callback) {
    requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {
    callback(worker.WorkerMessageHandler);
});
} : null;

(function webpackUniversalModuleDefinition(root, factory) {
    if(typeof exports === 'object' && typeof module === 'object')
        module.exports = factory();
    else if(typeof define === 'function' && define.amd)
        define("pdfjs-dist/build/pdf.worker", [], factory);
    else if(typeof exports === 'object')
        exports["pdfjs-dist/build/pdf.worker"] = factory();
    else
        root["pdfjs-dist/build/pdf.worker"] = 
        root.pdfjsDistBuildPdfWorker = 
        factory();
})

为什么新版本上的路径是硬编码的?我应该如何正确解决这个问题?

标签: javascriptrequirejspdf.js

解决方案


推荐阅读