使用 Apache 时,React 应用程序显示页面“404 找不到请求的路径”

Dev*_*B2F 9 apache reactjs serve

我正在将 React 应用程序部署到我的 Apache 服务器。

我可以在 my-ip:5001 上访问该应用程序,但是当我访问我的域时,它会显示“404 找不到所请求的路径”。顺便提一句。在使用 React 之前,域已设置并使用 html 文件。

在此输入图像描述

我这样做了npm run build并将构建文件夹放置在服务器的根目录中。未对 package.json 文件进行任何更改。

我使用以下方式运行服务器: serve -s -l 5001

Apache 配置文件:

<IfModule mod_ssl.c>
<VirtualHost *:443>    
        ServerName somedomain.com
        ServerAlias www.somedomain.com



ProxyRequests On
ProxyVia On
<Proxy *>
  Order deny,allow
  Allow from all
  </Proxy>

        ProxyPass / http://localhost:5001/
        ProxyPassReverse / http://localhost:5001/



</VirtualHost>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

知道这里会发生什么吗?

小智 9

从 /build 文件夹内部运行serve -s。例子

C:\Users\zafriha\Desktop\myProject>build>cd..

C:\Users\zafriha\Desktop\myProject>npm install -gserve

C:\Users\zafriha\Desktop\myProject>serve -s build


Dev*_*B2F -1

新答案:无需在服务器上运行serve命令。只需将构建文件夹放在服务器上即可。在 .conf apache 文件内,使 DocumentRoot 路径指向构建文件夹。

旧答案:更改这些行:

ProxyPass / http://localhost:5001/
ProxyPassReverse / http://localhost:5001/
Run Code Online (Sandbox Code Playgroud)

到:

ProxyPass / http://my-server-ip:5001/
ProxyPassReverse / http://my-server-ip:5001/
Run Code Online (Sandbox Code Playgroud)

解决了问题