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

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

我正在将 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>

知道这里会发生什么吗?

reactjs apache serve
4个回答
8
投票

从 /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


0
投票

有同样的问题。 在终端中执行nx重置解决了它。

nx reset

0
投票

您应该运行生产模式的命令,例如“npm run start”,而不是使用“serve”。 (也适用于 Dockerfile)


-1
投票

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

旧答案: 更改这些行:

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

至:

ProxyPass / http://my-server-ip:5001/
ProxyPassReverse / http://my-server-ip:5001/

问题解决了

© www.soinside.com 2019 - 2024. All rights reserved.