vue项目部署到Apache服务器中遇到的问题解决


Posted in Javascript onAugust 24, 2018

最近刚重构完,我们的一个项目,由原来的jsp模式改为了前后端分离,前端选型为vue,开发完成之后第一件时间就是要部署测试,服务端选的是Apache。本来以为很简单的一件事情,几经坎坷部署了两天才算能够正常访问了。先记录如下,

过程搭建Apache环境,vue项目build之后把生成的dist文件放到,Apache下面,启动Apache之后本以为能够正常访问了,

前提说下:vue项目路由model:history ,默认不会出现下面的问题,因为个人感觉项目路径中带个#实在难受

但是发现错误如下:

vue项目部署到Apache服务器中遇到的问题解决

无法正常访问,报了一堆404,由于接触vue项目不久,一脸懵逼,于是百度了一下内容如下(vue项目部署到Apache404错误)发现有很多解决方案,最常见的就是增加.htaccess,自己也按照网上方式操作了一遍,反复更改无效,当然有可能是自己配置的方式不对,反正我的是没有解决。

于是换了一个思路重新搜索了一下,看到了另一篇文章:https://www.cnblogs.com/xyyt/p/7718867.html 茅塞稍微开了一点,我的正常配置如下:

vue项目部署到Apache服务器中遇到的问题解决

无非就是要把多的那一段路由信息去掉而已,尝试了如下变态的修改:

vue项目部署到Apache服务器中遇到的问题解决

试着重新build发布一下到Apache,奇迹的事情发生了,没问题了,一切正常,当然我的修改方式我也感觉不是很妥当,当实在找不到合适方式,只能暂时这样的修改,所有的路径都按照上面的修改,就能够正常访问了

vue项目部署到服务器页面空白的问题

  • 路由跳转的时候使用mode: 'history'去掉#号,放到服务器crm目录下,根据www.asa.com/crm路径访问,出现获取不到资源问题,页面一片空白,搜索问题,路由配置文件中添加mode: 'history', base: '/crm/',。
  • 然后资源都获取到了也都加载了但是页面还是空白,没有进行渲染(这个问题好像和问题1相同,当时没有记录下来现在回忆起来有点模糊),通过后端配置解决了问题。
  • 页面渲染成功各页面跳转页都正常了,但是又出现了在当前页面刷新都会出现404的问题,因为只有一个index.html文件,url中的路由跳转都是vue-router进行在实际文件中没有login.html等文件,服务器在找这些页面会找不到出现404错误,因此需要后端服务器配置进行404全部跳转到index.html解决问题。
  • 闲着没事有想到问题3,后端到底如何配置的,自己就实现了一遍,以mac下自带apache为例进行配置
    • 到mac下apache安装路径/private/etc/apache2/httpd.conf中, (apahce的配置文件)

开启rewrite_module功能,

LoadModule rewrite_module libexec/apache2/mod_rewrite.so,去掉前面的#;

DocumentRoot "/users/Dev/sites"(设置apache默认指向目录)
<Directory "/users/Dev/sites">
Options Indexes FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride All
Require all granted
</Directory>

设置AllowOverride All是为了使apache支持.hatccess文件。

* 在该项目根目录添加.hatccess文件(index.html平级),内容跟https://router.vuejs.org/zh-cn/essentials/history-mode.html‘>HTML5 History 模式(vue-router文档举例)类似,

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /crm/
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /crm/index.html [L]
</IfModule>

,需要修改的两个地方,RewriteBase /crm/;

RewriteRule . /crm/index.html [L],要添加项目所在文件的文件名,

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

Javascript 相关文章推荐
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
Oct 15 Javascript
基于jquery的不规则矩形的排列实现代码
Apr 16 Javascript
JS 实现Table相同行的单元格自动合并示例代码
Aug 27 Javascript
JavaScript数据结构和算法之图和图算法
Feb 11 Javascript
JS实现的最简Table选项卡效果
Oct 14 Javascript
javascript js 操作数组 增删改查的简单实现
Jun 20 Javascript
js select实现省市区联动选择
Apr 17 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
Jun 17 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
详解mpvue开发小程序小总结
Jul 25 Javascript
vue项目出现页面空白的解决方案
Oct 31 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
Nov 10 Javascript
Vue.js获取被选择的option的value和text值方法
Aug 24 #Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 #Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
Aug 24 #Javascript
浅谈ElementUI中switch回调函数change的参数问题
Aug 24 #Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
Aug 24 #Javascript
微信小程序支付PHP代码
Aug 23 #Javascript
vue+axios 前端实现的常用拦截的代码示例
Aug 23 #Javascript
You might like
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
php时区转换转换函数
2014/01/07 PHP
PHP模板解析类实例
2015/07/09 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
Python通过解析网页实现看报程序的方法
2014/08/04 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
OpenCV 边缘检测
2019/07/10 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
2020/06/16 Python
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
什么是封装
2013/03/26 面试题
作文评语大全
2014/04/23 职场文书
跑操口号
2014/06/12 职场文书
幼儿生日活动方案
2014/08/27 职场文书
维稳承诺书
2015/01/20 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
门面租赁合同范文
2019/08/06 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
Python实战之实现简易的学生选课系统
2021/05/25 Python
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript