如何为react设置apache2
我在apache2上运行了react应用程序 在我的应用程序中,有3个页面:主页、关于、注册 我有三条这样的路线:如何为react设置apache2,apache,reactjs,Apache,Reactjs,我在apache2上运行了react应用程序 在我的应用程序中,有3个页面:主页、关于、注册 我有三条这样的路线: <Route path="/home" component={....} /> <Route path="/about" component={.....} /> <Route path="/register" component={....} /> 所以,应用程序工作得很好,当我访问www.onlyexampleurl.com时,应用程序加载
<Route path="/home" component={....} />
<Route path="/about" component={.....} />
<Route path="/register" component={....} />
所以,应用程序工作得很好,当我访问www.onlyexampleurl.com时,应用程序加载正确。我可以在家里登记,大约,登记好
但问题是,当我直接访问www.onlyexampleurl.com/about时,我从apache获得了404,因为应用程序是从根路径“/”下载的
我怎样才能修好它?当我把www.onlyexampleurl.com/about放到浏览器中时,我想从我的应用程序中加载关于页面的内容,但我从apache获得了INT404
谢谢你的帮助 您需要将所有请求重定向到条目文件,假设它是index.html。输入.htaccess:
这是单页应用程序的标准解决方案。这是对这个问题的迟来回答,但我想我会与大家分享我的做法,以防有人碰到同样的问题 这是假设Ubuntu操作系统,我在Linux上没有成功: 我已经遵循了其中的某些步骤,我可以证明这对于使SPA在ApacheWeb服务器中以正确的路由运行是有效的 引述: 1位于etc/apache2/I的apache2.conf中,我将AllowOverride设置为All。我还在文件中添加了Servername localhost。我不知怎的跳过了最后一句话,但最后还是很管用
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
3我运行了sudo a2enmod重写。然后,我通过服务apache2重新启动apache服务器。这将打开mod_rewrite
最后,在我的项目文件夹/var/www/html中,我在我的index.html文件旁边创建了一个.htaccess文件,并添加了以下内容:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^.*$ / [L,QSA]
结束报价
假设您运行了npm run build,然后将build文件夹中的所有内容复制到您的公共目录中,这应该可以工作
当我第一次启动web dev时,我并不确定我是否正确地配置了VirtualHost,所以我通常首先使用Hello World示例创建一个虚拟index.html。当我确认我能够在浏览器中看到Hello World(这意味着我正确地获得了VirtualHost配置)时,我会将构建文件夹的内容转储到虚拟index.html所在的位置
希望这对你和我都有帮助
127.0.0.1 yourdomain.com
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^.*$ / [L,QSA]