Почему я получаю файл «df.worker.min.js», хотя его MIME-тип («text / html») не является допустимым MIME-типом JavaScript » - PullRequest
2 голосов
/ 26 марта 2019

Я пытаюсь использовать pdfjs в небольшом машинописном приложении с parceljs в качестве компоновщика, но когда я загружаю работника с:

pdfjsLib.GlobalWorkerOptions.workerSrc = '../../node_modules/pdfjs-dist/build/pdf.worker.min.js';

Я получаю эту ошибку в консоли Firefox:

pdf.worker.min.js” was loaded even though its MIME type (“text/html”) is not a valid JavaScript MIME type

и рабочий не загружен.

Если я загружу работника так:

pdfjsLib.GlobalWorkerOptions.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${(pdfjsLib as any).version}/pdf.worker.min.js`;

все отлично работает.

Я посмотрел на MDN-описании ошибки, и я звучу, как что-то на стороне сервера, так что это ограничение сервера посылок и есть ли обходной путь?

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Проверьте права доступа к файлу .js на вашем веб-сервере.

У меня была похожая проблема, при которой загрузка одного из моих файлов .js не удалась, и Firefox напечатал сообщение:

Сценарий из «https://my.website.com/file.js”» был загружен, хотя его тип MIME («text / html») не является допустимым типом MIME JavaScript.

Загрузка не удалась для <script> с источником «https://my.website.com/file.js”.

Все остальные файлы .js были отправлены с правильным типом содержимого «application / javascript», но этот файл был отправлен с «text / html».

Проблема заключалась в том, что при передаче файла на мой веб-сервер (с использованием FileZilla) права доступа к файлу были установлены на 600. Установка прав доступа к файлу на 705 исправила его. Файл .js теперь отправлено с правильным типом содержимого и сообщение Firefox пропало.

0 голосов
/ 04 апреля 2019

Это происходит из-за неправильного заголовка ответа типа контента.

Ваш сервер отвечает файлом javascript с типом содержимого: "text / html", что неверно.

Изменитьтип содержимого "text / javascript".

Должно работать нормально.

Обновление (11-APR-2019):

Я предполагаю, что вы используете экспресс-фреймворк для http-сервера.,Тип содержимого можно установить с помощью промежуточного программного обеспечения.

app.use('*.js', (req, res, next) => {
    res.set('Content-Type', 'text/javascript')
    next();
})

Добавьте это до того, как статический файл обслуживает промежуточное программное обеспечение.

...