2

我是 react 的新手,即使我在 stackoverflow 和 google 中看到过类似的答案,我也无法让它工作。

我已经通过 'react-scripts' 创建了一个应用程序,它工作得很棒(只是 npm start 。没什么特别的)。

当我尝试在我的 Apache 服务器中部署此应用程序时,我的问题就出现了。

1)我执行 'npm build' 。Build 文件夹是用(我猜)一个可部署的版本创建的。

2)我将此构建文件夹复制到我的 Apache 服务器,当我尝试访问时,我看到了头部和标题,但没有内容。一切都是白色的。

我在“npm run build”之后收到此消息:

该项目是在假设它托管在服务器根目录的情况下构建的。要覆盖它,请在 package.json 中指定主页。例如,添加这个来为 GitHub Pages 构建它:

“主页”:“ http://myname.github.io/myapp ”,

构建文件夹已准备好部署。您可以使用静态服务器为其提供服务:

npm 安装 -g 服务 服务 -s 构建

我猜 'serve' 是一个 http 服务器,但我想在 Apache 中部署我的应用程序。据我了解,应该足以复制到 Apache 文件夹。我缺少一些东西。请问你能帮帮我吗 ?

4

2 回答 2

0

步骤 1:.htaccess在 public 文件夹中创建一个文件,内容如下

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]

第 2 步:执行npm run build
第 3 步:将文件从构建文件夹复制到 Apache 的文档根目录

mod_rewrite在使用.htaccess文件之前,您需要确保已启用。
在 ubuntu中,执行命令sudo a2enmod rewrite
在 CentOS 7中,打开/etc/httpd/conf/httpd.conf文件,找到该<Directory /var/www/html>部分并将AllowOverride指令从更改NoneAll

于 2019-07-19T11:46:02.587 回答
0

在这里查看https://github.com/mgechev/angular-seed/wiki/Deploying-prod-build-to-Apache-2

重新加载页面,除了 root 和深度链接会导致 404 错误......原因是所有 Angular2 路由都应该通过 index.html 文件提供服务。

于 2017-07-26T08:04:00.017 回答