Jør*_*sen 6 javascript pdfjs parceljs
我尝试在一个小型打字稿应用程序中使用 pdfjs,将parceljs 作为捆绑器,但是当我加载工作人员时:
pdfjsLib.GlobalWorkerOptions.workerSrc = '../../node_modules/pdfjs-dist/build/pdf.worker.min.js';
Run Code Online (Sandbox Code Playgroud)
我在 Firefox 控制台中收到此错误:
pdf.worker.min.js” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type
Run Code Online (Sandbox Code Playgroud)
并且没有加载工人。
如果我像这样加载工人:
pdfjsLib.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${(pdfjsLib as any).version}/pdf.worker.min.js`;
Run Code Online (Sandbox Code Playgroud)
一切正常。
我查看了错误的 MDN 描述,我听起来像是一些服务器端的事情,那么它是否是包裹服务器的限制,是否有解决方法?
发生这种情况是因为内容类型响应标头错误。
您的服务器正在响应内容类型为“text/html”的 JavaScript 文件,这是错误的。
将内容类型更改为“text/javascript”。
它应该工作正常。
更新(2019 年 4 月 11 日):
我假设您正在使用 http-server 的 Express 框架。可以使用中间件设置内容类型。
app.use('*.js', (req, res, next) => {
res.set('Content-Type', 'text/javascript')
next();
})
Run Code Online (Sandbox Code Playgroud)
将其添加到静态文件服务中间件之前。