2017-03-23 34 views
2

網站運行時沒有任何生產問題(文件縮小和連接),但是當頁面發送到prerender.js或phantom.js進行快照時代,我得到一個錯誤:Angular無法爲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以不同的方式加載文件。 A也使用window.prerenderReady = true/false無濟於事。我使用generator-angular-fullstack與角v1.5.8和jQuery V2.2.4

index.html中的jquery

前角被包括。我想知道是否有任何方法可以獲得有關導致問題原因的更詳細信息。

+0

它只是幻影js或其他瀏覽器以及?聽起來像依賴注入的問題。嘗試使用'ng-app'在元素上添加'ng-strict-di',即'' – maurycy

+1

您是否設法找到了解決方案?我有一個類似的問題。 –

+0

這裏同樣的問題。你怎麼修好它的?謝謝 – Hendrik

回答

0

如果您的文件正在加載<body>中,我已經看到過這種情況。在<body>中加載腳本會使它們異步加載,如果腳本可能以不正確的順序加載。大多數較新的瀏覽器可以很好地處理,但PhantomJS(v2.1.1)將在加載後立即執行該腳本,無論其順序如何。

我建議試圖加載這些腳本在<head>

+0

我試過這個解決方法,但沒有解決。你還有其他建議嗎? –

+1

您可以通過[email protected]向我們發送電子郵件給我們您的網站嗎?我們可以測試您的網站並找出問題所在 –