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 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
JavaScript检测并限制复选框选中个数的方法
Aug 12 Javascript
javascript先序遍历DOM树的方法
Feb 27 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
Nov 16 Javascript
js获取一组日期中最近连续的天数
May 25 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
Feb 24 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
Jun 23 Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 Javascript
详解一个小实例理解js原型和继承
Apr 24 Javascript
Vue.js轮播图走马灯代码实例(全)
May 08 Javascript
Vue获取微博授权URL代码实例
Nov 04 Javascript
vue首次渲染全过程
Apr 21 Vue.js
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链表用法实例分析
2015/07/09 PHP
学习PHP session的传递方式
2016/06/15 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
python 魔法函数实例及解析
2019/09/25 Python
Python如何对XML 解析
2020/06/28 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
python动态规划算法实例详解
2020/11/22 Python
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
销售简历自我评价
2014/01/24 职场文书
优秀医生事迹材料
2014/02/12 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
个人廉政承诺书
2015/04/28 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电