该页面正在运行由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