【发布时间】:2021-10-08 09:55:09
【问题描述】:
我有一个部署在共享主机/cpanel 上的 MERN 应用。现在我的服务器端工作了,但是当我尝试访问一个页面时,反应路由没有,例如。 domain.com/about ,它在我的服务器上用作获取请求,而不是转到 about 页面。我使用 npm run build,并将 build 文件夹中的所有文件上传到 public_html。然后我将服务器端的存储库(客户端和服务器具有不同的存储库)克隆到 home/username/server。
原来这是我的文件结构
client
-src
-package.json
-etc
-build (after npm run build)
server
-app.js
-models
-routes
-events
-packagejson
-etc
我在 cpanel 上创建了一个 nodejs 应用程序。 这就是我放在我的节点 js 应用程序上的内容。
Application Mode : Product
Application Root : server
Application URL : domain.com
Application Startup file : app.js
现在在我的文件管理器上看起来像这样
/home/username
-public_html
-index.html
-other files from build folder
-server
-app.js
-etc
现在我尝试将此 apache 配置添加到现有的 .htaccess 配置(其中包含 nodejs 的护照配置)
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
这样,我的反应路由器可以工作,但我的服务器不能。如何使服务器路由和反应路由同时工作?对不起,我是新手。谢谢!
【问题讨论】:
标签: node.js reactjs express .htaccess cpanel