我正在构建一个包含服务器端渲染的React应用。我正在使用webpack HMR,并且已将HMR服务器设置在与快递服务器端不同的端口上(因此我运行了两个“服务器”,一个用于应用程序,一个用于HMR)。
由于SSR,客户端和服务器内部都引用了React组件,因此更改会触发客户端和服务器侧的重新构建。
我看到的问题是客户端收到HMR更新并开始重新呈现更改,但是其中一部分包括服务器提供的图像资产的链接。开始发出请求时,服务器仍在重新启动,因此对于许多映像资产,我都“无法访问主机”(服务器重新启动有点慢的一个原因是它需要连接并验证数据库表)
我看过一些有关应用于服务器的HMR的文章,但这似乎有些粗略,并且稍有延迟就足够了,并且可以避免在无聊时重新加载整个页面客户端。我还没有找到这样的选择。
服务器正在使用express.static来提供图像资产,这最终将改变,以便服务器将根据客户端要求缓存并提供图像资产的多个变体(因此图像资产具有响应性,例如srcSet等)。
我可以看到,如果由客户端重新渲染触发对服务器的任何客户端请求(例如数据库更新),这可能会成为问题。
我想知道如何延迟/推迟客户端重新渲染,直到服务器重新联机?