2017-03-23 11 views
2

웹 사이트는 프로덕션 (확장 및 연결 된 파일)에서 문제없이 실행되지만 페이지가 prerender.js 또는 phantom.js (스냅 샷) 생성되면 오류가 발생합니다.Angular는 pprenation에 대해서만 prerender.js/phantom.js 모듈을로드 할 수 없습니다.

Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp to: Error: [$injector:modulerr] Failed to instantiate module myApp due to: Error: [$injector:nomod] Module 'myApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

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 in m
https://www.mydomain.io/app/vendor.7240ef6a.js:4 in db
https://www.mydomain.io/app/vendor.7240ef6a.js:3 in g
https://www.mydomain.io/app/vendor.7240ef6a.js:3 in 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 in j
https://www.mydomain.io/app/vendor.7240ef6a.js:2 in fireWith
https://www.mydomain.io/app/vendor.7240ef6a.js:2 in ready
https://www.mydomain.io/app/vendor.7240ef6a.js:1 in g

파일 : vendor.js 및 app.js. 필자는 다른 프로젝트에서 정확히 동일한 구조를 가지고 있으며 (파일이 다르다.) 동일한 prerender.js 서버에서 잘 작동한다.

문제점을 jquery.js까지 추적 할 수있었습니다. 그러나 나는 그 시점에서 붙어있다. prerender/phanatom.js 파일을 다른 방식으로로드하는 것처럼 보입니다. 또한 window.prerenderReady = true/false을 사용하지 않았습니다. 내가 각도 v1.5.8하고있는 index.html JQuery와에

의 jQuery v2.2.4로 generator-angular-fullstack을 사용하고

는 각 전에 포함되어 있습니다. 문제의 원인에 대한 자세한 정보를 얻을 수있는 방법이 있는지 궁금합니다.

+0

그냥 팬텀 JS 또는 다른 브라우저입니까? 의존성 주입 문제 같은데. ng-app를 사용하여 요소에 ng-strict-di를 추가하십시오. 즉, – maurycy

+1

해결 방법을 찾으셨습니까? 나는 비슷한 문제가있다. –

+0

같은 문제가 있습니다. 어떻게 그걸 고쳤습니까? 감사합니다 – Hendrik

답변

0

파일이 <body>에로드되는 경우 이전에 이런 현상이 발생했습니다. <body>에 스크립트를로드하면 스크립트가 잘못된 순서로로드 될 수있는 곳에 비동기 적으로로드됩니다. 대부분의 최신 브라우저는 멋지게 처리하지만 PhantomJS (v2.1.1)는 순서에 관계없이 스크립트가로드되는 즉시 실행합니다.

<head>에 해당 스크립트를로드하는 것이 좋습니다.

+0

이 해결 방법을 시도했지만 작동하지 않았습니다. 다른 아이디어가 있습니까? –

+1

웹 사이트에서 [email protected]로 이메일을 보내주십시오. 사이트를 테스트하여 문제의 원인을 파악할 수 있습니다. –