Angular не может загрузить модуль для prerender.js/phantom.js только для pproduction

Веб-сайт работает без каких-либо проблем в процессе производства (файлы сокращены и объединены), но когда страница отправляется в prerender.js или phantom.js для создания снимка, я получаю сообщение об ошибке:

Uncaught Ошибка: [$injector:modulerr] Не удалось создать экземпляр модуля myApp: Ошибка: [$injector:modulerr] Не удалось создать экземпляр модуля myApp из-за: Ошибка: [$injector:nomod] Модуль "myApp" недоступен! Вы либо неправильно написали имя модуля, либо забыли загрузить его. При регистрации модуля убедитесь, что вы указали зависимости в качестве второго аргумента.

https://www.mydomain.io/app/vendor.7240ef6a.js:4
https://www.mydomain.io/app/vendor.7240ef6a.js:3 in d
https://www.mydomain.io/app/vendor.7240ef6a.js:4 в м
https://www.mydomain.io/app/vendor.7240ef6a.js:4 в дБ
https://www.mydomain.io/app/vendor.7240ef6a.js:3 в г
https://www.mydomain.io/app/vendor.7240ef6a.js:3 в ea
https://www.mydomain.io/app/vendor.7240ef6a.js:3 in da
https://www.mydomain.io/app/vendor.7240ef6a.js:8
https://www.mydomain.io/app/vendor.7240ef6a.js:2 в j
https://www.mydomain.io/app/vendor.7240ef6a.js:2 в fireWith
https://www.mydomain.io/app/vendor.7240ef6a.js:2 в готовности
https://www.mydomain.io/app/vendor.7240ef6a.js:1 в г

У меня есть файлы: vendor.js и app.js. У меня точно такая же структура в моем другом проекте (только файлы разные), и он хорошо работает с тем же сервером prerender.js.

Мне удалось отследить проблему до jquery.js. Но я застрял в этой точке. Похоже, prerender / phanatom.js загружает файлы по-другому. А также используется window.prerenderReady = true/false но безрезультатно.

Я использую генератор- Angular -FullStack с Angular v1.5.8 и jQuery v2.2.4

В index.html jquery включен перед угловым. Интересно, есть ли способы получить более подробную информацию о причинах проблемы?

1 ответ

Я видел это раньше, если ваши файлы загружаются в <body>, Загрузка скриптов в <body> заставляет их загружаться асинхронно, где возможно, что скрипты загружаются в неправильном порядке. Большинство новых браузеров справляются с этим хорошо, но PhantomJS (v2.1.1) выполнит скрипт сразу после его загрузки, независимо от порядка.

Я бы посоветовал попытаться загрузить эти скрипты в <head>,

Другие вопросы по тегам