2016-06-09 71 views
4

我正試圖調試我的聚合物應用程序。我已經通過複製我認爲PolymerCLIPolymer init所做的手來製作它。聚合物服務和服務工作者

我不確定什麼是加載服務人員。開發的默認版本是console.info()調用,稱它已被禁用開發。

當我使用Polymer serve在localhost:8080上爲我的應用程序提供服務時,我得到了console.info消息,儘管我實際上並沒有加載文件service-worker.js。因爲應用程序要複雜得多(我試圖使用http/2),所以我也有自己的基於節點的服務器。當我運行它,然後在瀏覽器中獲取我的應用程序時,service-worker.js不會被加載並運行。

Polymer serve做什麼來啓用它?

+0

您正在使用哪種'聚合物init'模板?例如。聚合物初始化應用程序,聚合物初始化應用程序抽屜模板等。 –

+0

我手工製作應用程序,因爲它在聚合物cli創建之前就存在。我在另一個目錄中創建了一個標準應用程序,並複製了相應的文件(service-worker.js,sw-precache-config.js),並使用其餘文件作爲指南來編輯我已有的文件。 – akc42

回答

5

它可能是一個不同的應用程序使用相同的來源(例如localhost:8080)註冊和安裝服務工作者。

打開Chrome Canary中的應用程序面板檢查/刪除服務人員。

enter image description here

如果您無法訪問Chrome Canary版,開放chrome://serviceworker-internals,發現自己的應用相匹配的範圍,並單擊註銷。在serviceworker-internals的頂部也有一個選項,它可以讓你打開一個DevTools窗口並在SW上暫停JS。啓用該選項,您將能夠看到哪個SW正在運行。

+0

這可能是它,雖然我不知道如何檢查,因爲我沒有安裝金絲雀(我正在運行Debian)。我用聚合物初始化創建了一個虛擬應用程序,只是爲了看看它會做什麼。我還創建了一個谷歌商店應用程序的副本來看看。其中一個可能已經做到了,但爲什麼控制檯日誌響應我在'/ service-worker.js'中的內容 – akc42

+0

@ akc42檢查編輯答案底部的工作流程 –

+0

謝謝。我「認爲」我現在明白了。看起來,虛擬應用中的代碼在位於localhost:8080時註冊了網址「/ service-worker.js」。此服務工作者代碼與我的應用程序中的代碼相同,因爲我只是複製它,所以無法說出正在使用哪個版本。我現在唯一的困惑是,我認爲服務人員只有https,而且這是在本地主機http連接上激活的。 – akc42