本文主要是记录一下在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的。这里只是一个简单的记录,没有做过多的说明。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍vue、react等单页面项目部署到服务器的方法及vue和react的区别,包括了vue、react等单页面项目部署到服务器的方法及vue和react的区别的使用技巧和注意事项,需要的朋友参考一下 最近好多伙伴说,我用vue做的项目本地是可以的,但部署到服务器遇到好多问题:资源找不到,直接访问index.html页面空白,刷新当前路由404。。。用react做的项目也同样遇到类似问题
本文向大家介绍Docker镜像+nginx 部署 vue 项目的方法,包括了Docker镜像+nginx 部署 vue 项目的方法的使用技巧和注意事项,需要的朋友参考一下 一、打包vue项目 在开发完的vue项目输入如下命名,打包生成dist文件夹 此时根目录会多出一个文件夹:dist文件夹,里面就是我们要发布的东西。 如果将该dist目录整个传到服务器上,部署成静态资源站点就能直接访
App1是项目开发目录,这个目录的名称是可以修改的,比如修改为:App2 Cache/ 这个目录为项目缓存目录 Cache/Datacache/ 数据文件缓存 Cache/HtmlCache/ 静态html页面缓存 cache/template/ 模板文件缓存 Common/Common.php 项目函数 Config/Config.php 项目配置 Config/Home.Config.php
本文向大家介绍Vue-cli项目部署到Nginx服务器的方法,包括了Vue-cli项目部署到Nginx服务器的方法的使用技巧和注意事项,需要的朋友参考一下 0. Nginx使用 以windows版为例,下载niginx压缩包并解压到任意目录,双击nginx.exe,在浏览器中访问http://localhost,如果出现Welcome to nginx!页面则说明成功。 nginx常用命令如下:
本文向大家介绍详解Vue项目编译后部署在非网站根目录的解决方案,包括了详解Vue项目编译后部署在非网站根目录的解决方案的使用技巧和注意事项,需要的朋友参考一下 同一个生产部署项目,基内外网的访问路径并不相同,内网是基于域名根目录来访问,而外网却指向了一个子目录。 eg. : vue-router: history模式 内网环境:192.168.1.1:8080/index.html 外网环境:do
本文向大家介绍Django上线部署之Apache的方法,包括了Django上线部署之Apache的方法的使用技巧和注意事项,需要的朋友参考一下 环境: 1.Windows Server 2016 Datacenter 64位 2.SQL Server 2016 Enterprise 64位 3.Python 3.6.0 64位 4.administrator用户,无域环境,最高权限