apache下面二级目录部署react/vue的方法

作者:jenemy 时间:2023-08-05 00:08:22 

本文主要是记录一下在apache二级目录上面部署react和vue项目。根目录下面部署很简单,但是在二级目录下就需要在webpack的配置或者vue-cli的配置文件以及路由组件做一些简单调整。由于mac系统自己带了apache,所以我们只需要开启就可以了。

配置apache

在终端中输入sudo apachectl start,然后在浏览器中输入"http://localhost",如果出现"It works!"则说明apache启动成功。

由于mac系统在当前用户目录下面已经有一个Sites目录,专门用来存放站点的文件,这里只需要在里面建目录就可以了,这里有两个项目,一个为react项目,另一个为vue项目,目录如下:


|- Sites
| - react # react项目build后的目录
| - vue # vue项目build后的目录

在终端中进入目录/etc/apache2,如果是第一次配置apache,一定要把"httpd.conf"文件和目录"extra"作个备份。接下就是编辑"httpd.conf"文件,可以选择把整个"apache2"目录拖到文本编辑中进行修改,也可以使用vim来编辑,记得使用root权限。

在配置文件中找到#ServerName localhost:80去掉"#"号,然后找到#LoadModule rewrite_module libexec/apache2/mod_rewrite.so同样去掉"#"号,然后在httpd.conf同级目录新建一个目录users来放置自己的配置文件,这里需要在apace配置中添加Include /private/etc/apache2/users/*.conf来加载自己的配置。

在users目录中新建一个文件,这里取名叫www.example.conf。在里面添加内容:


<VirtualHost *:80>
DocumentRoot /Users/你的用户名/Sites/
<Directory "/Users/你的用户名/Sites/">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>

上面配置中的东西我就不作解释了,因为我也不是很清楚。需要清楚的是DocumentRootxxx<Directory "xxx">均指向你的网站部署所在目录。

配置好了记得重启apache,我这里是使用命令sudo apachectl -k restart

配置Vue

项目是通过vue-cli 3.x生成的,在根目录新建配置文件"vue.config.js",然后添加以下内容:


// vue.config.js

module.exports = {
baseUrl: process.env.NODE_ENV === 'production' ? '/vue' : '/',
outputDir: 'build',
};

这里把outputDir改成"build"是为了和react保持一致。然后找到"router.js"文件,添加一个base配置。

注意: 怎么把vue项目部署在二级目录,官网文档是有说明的。


export default new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{
 path: '/',
 name: 'home',
 component: Home
}
})

最后我们还需要在public目录中添加一个.htaccess文件来配置将所有的请求转发到静态文件index.html


RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt|svg|woff|ttf|eot)$
RewriteRule . /vue/index.html [L]

这样在vue这边的准备工作就ok了。

配置React

React项目是通过create-react-app创建的,这里只需要在package.json中添加"homepage": ".",这里的homepage值也可以指定一个具体的域名,比如"homepage": http://www.example.com/react

然后是修改路由的basename值。这里使用的是"react-router 4"。


import {BrowserRouter as Router} from 'react-router-dom';

function Routes() {
const isProd = process.env.REACT_APP_ENV === 'production';
return (
<Router basename={isProd ? '/react' : '/'}>
</Router>
)
}

然后public目录同样添加.htaccess文件


RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt|svg|woff|ttf|eot)$
RewriteRule . index.html [L]

运行结果

在浏览器中打开地址http://localhost/react即可查看react项目,http://localhost/vue来查看vue项目。本人电脑上亲测是没有问题的,访问路由http://localhost/vue/about都ok的。这里只是一个简单的记录,没有做过多的说明。

来源:https://segmentfault.com/a/1190000016129289

标签:apache,二级目录,部署,react,vue
0
投稿

猜你喜欢

  • 网站优化如何上路

    2009-01-15 10:30:00
  • 对google补充材料的一些新的观察

    2007-08-08 16:59:00
  • 做网络必须掌握83句话,网络成功可以复制

    2008-02-18 11:12:00
  • 对比你的网站 特差网站十大标准占了几条

    2009-01-12 09:52:00
  • 如何利用多核CPU来加速你的Linux命令(GNU Parallel)

    2023-08-29 09:19:05
  • IIS网站服务器性能优化指南[资源下载]

    2009-04-03 13:30:00
  • 谷歌AdWords五千万激励计划11月30日结束

    2009-11-26 11:09:00
  • Linux使用curl访问网页和wget下载文件

    2021-01-25 23:03:55
  • 地方行业类门户网站推广的几点方法

    2009-02-10 15:13:00
  • Centos7下NFS服务搭建介绍

    2023-08-06 02:11:01
  • 微软5月底推免费望远镜工具 与谷歌天空竞争

    2008-05-13 12:29:00
  • Nero 9 Reloaded发布 全面兼容Windows 7

    2009-10-10 10:41:00
  • CentOS 6.7系统下安装配置JDK的方法

    2023-10-06 14:21:41
  • 多少日ip的网站才能够上吃喝?

    2008-05-28 14:06:00
  • 使用dedecms制作英文站的技巧说明

    2010-12-08 16:50:00
  • VMware14.0.0版本虚拟机安装Ubuntu16.04 LTS版本Linux系统图文教程

    2023-04-19 23:00:24
  • Windows 2003 IIS6 存在着文件解析路径的漏洞

    2009-06-24 11:10:00
  • RedHat7.2下Apache与Tomcat4整合实例

    2010-05-16 18:10:00
  • 使用Linux系统架设安全的网关

    2008-10-13 18:09:00
  • 与网站有些不同 博客流量来源的10个途径

    2009-02-18 12:56:00
  • asp之家 网站运营 m.aspxhome.com