React 应用程序在 Docker-Swarm 中运行时不提供静态文件

问题描述 投票:0回答:0

我有一个由 NGINX 容器提供服务的 React 应用程序。该应用程序在使用 Docker 部署时运行良好,但当我使用 Docker Swarm 部署它时,静态文件未加载到浏览器中,而是显示为 0 字节文件。 index.html 加载正确,我可以在浏览器选项卡中看到标题,但没有加载其他资源。

Docker Swarm Manager 与我的 NGINX 容器在同一台服务器上运行。

我不认为这是 NGINX 的问题,因为我也不能在本地卷曲静态文件:

root@lb-1:~# curl 10.0.0.2:80/static/js/main.a647b745.js
curl: (56) Recv failure: Connection reset by peer

worker上容器的日志表明请求成功:

10.0.0.2 - - [05/May/2023:03:38:56 +0000] "GET /static/js/main.a647b745.js HTTP/1.1" 200 768663 "-" "curl/7.81.0" "-"

Index.html 工作正常:

root@lb-1:~# curl 10.0.0.2:80
    <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Example"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>Example</title><script defer="defer" src="./static/js/main.a647b745.js"></script><link href="./static/css/main.faffc4b4.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
10.0.0.2 - - [05/May/2023:03:57:06 +0000] "GET / HTTP/1.1" 200 661 "-" "curl/7.81.0" "-"

经理和工人之间的关系好像有问题。我已经关闭了 10.0.0.0/16 IP 的防火墙。

我不确定天气是否正常,但我也看到工作人员正在端口 8080 上运行,尽管管理器服务正在 80 上运行。这是因为 docker-swarm 管理的入口网络吗?

在使用 Docker Swarm 部署我的 React 应用程序时,如何解决静态文件未加载的问题?任何帮助appriciated.

我已经关闭了 10.0.0.0/16 IP 的防火墙

reactjs docker-swarm
© www.soinside.com 2019 - 2024. All rights reserved.