該頁面正在運行由ClojureScript構建的JavaScript。構建包括方輪客戶端代碼。來自飛輪客戶端的代碼打開websocket連接到預定義的位置。無論頁面託管在哪裏,javascript都會嘗試連接到預定義的websocket端點。因此,如果您在3000上從服務器加載頁面,那麼WebSocket仍會建立到您使用lein figwheel
創建的服務器進程。重要的一點是有圖輪客戶端代碼和圖輪服務器。 figwheel服務器正在監視文件系統並在文件更改時告訴任何websocket連接。 figwheel客戶端只是連接到一個已知的websocket並監聽指令來重新載入工件。因此,您不需要使用figwheel來爲靜態內容提供服務,就像您已經發現的那樣。
至於「這是最好的方式嗎?」那完全取決於你的目標。當然,它的效果很好,所以如果運行兩者都有一些優勢,那就去吧!另一方面,如果你不需要它,爲什麼要運行一個快速服務器呢?
一種情況下,其中運行2臺服務器的優點是,當你是靠不使用figwheel作爲主機合身服務器端功能。這可能是由於部署(也許你不想使用響鈴處理程序作爲主服務器)或技術限制(我喜歡爲websocket使用httpkit,並且afaik沒有一種很好的方式來從一個戒指處理程序)。但是,正如您所指出的那樣,即使您不使用它來提供文件或服務,您仍然可以使用figwheel進行快速開發重新加載。
很明顯,figwheel服務器需要注意正確的文件,所以請確保figwheel被配置爲觀察正確的目錄。
figwheel未運行「靜態宿主服務器」,它通過websocket進行通信,並使用該數據通過其客戶端代碼更新前端 – noisesmith