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

 更新时间:2018年08月24日 08:31:53   作者:jenemy  
这篇文章主要介绍了apache下面二级目录部署react/vue的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文主要是记录一下在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的。这里只是一个简单的记录,没有做过多的说明。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • mac上安装ubuntu双系统教程

    mac上安装ubuntu双系统教程

    本篇文章主要介绍了mac上安装ubuntu双系统教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Linux低电量自动关机的实现方法

    Linux低电量自动关机的实现方法

    这篇文章主要给大家介绍了关于Linux低电量自动关机的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用linux具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Ubuntu 16.04与Apache虚拟主机配置的步骤详解

    Ubuntu 16.04与Apache虚拟主机配置的步骤详解

    这篇文章主要给大家介绍了关于Ubuntu 16.04与Apache虚拟主机配置的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ubuntu16.04系统具有一定的参考学习价值,需要的朋友们来一起看看吧。
    2018-04-04
  • Centos7添加静态路由的方法

    Centos7添加静态路由的方法

    本篇文章主要介绍了Centos7添加静态路由的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Linux中 CentOS 6.5 手动升级gcc到gcc-6.1.0

    Linux中 CentOS 6.5 手动升级gcc到gcc-6.1.0

    这篇文章主要介绍了Linux中 CentOS 6.5 手动升级gcc到gcc-6.1.0的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • 基于 Apache 的 httpd 文件服务器详解

    基于 Apache 的 httpd 文件服务器详解

    httpd HTTP Daemon,超文本传输协议守护进程的简称,运行于网页服务器后台,等待传入服务器请求的软件,这篇文章主要介绍了基于 Apache 的 httpd 文件服务器,需要的朋友可以参考下
    2024-07-07
  • Linux系统中sudo命令的十个技巧总结

    Linux系统中sudo命令的十个技巧总结

    Linux 下使用Sudo 命令,可以让普通用户也能执行一些或者全部的root命令,下面这篇文章主要给大家介绍了关于Linux系统中sudo命令的十个技巧,需要的朋友可以参考借鉴,下面来一起看看吧。
    2018-04-04
  • Apache Kafka 分区重分配的实现原理解析

    Apache Kafka 分区重分配的实现原理解析

    这篇文章主要介绍了Apache Kafka 分区重分配的实现原理,本文结合 2.0.0 版本的 Kafka 源码,详细介绍了 Kafka 分区副本重分配的流程和逻辑,需要的朋友可以参考下
    2022-07-07
  • CentOS 7搭建Linux GPU服务器的教程

    CentOS 7搭建Linux GPU服务器的教程

    这篇文章主要为大家详细介绍了CentOS 7搭建Linux GPU服务器的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • win7安装xampp提示windows找不到-n文件(安装成功后,443端口占用,apache服务器无法正常启动)的解决方案

    win7安装xampp提示windows找不到-n文件(安装成功后,443端口占用,apache服务器无法正常启动)的解

    这篇文章主要介绍了win7安装xampp提示windows找不到-n文件(安装成功后,443端口占用,apache服务器无法正常启动)的解决方案的相关资料,需要的朋友可以参考下
    2016-09-09

最新评论