Vuejs+vue-router打包+Nginx配置的实例


Posted in Javascript onSeptember 20, 2018

其实这个网上已经有了很多人写了,为什么我还要再写这一篇博客?因为我亲身把他们生产的坑给踩了个通透(摊手。

正文开始

本次的项目是基于vue-cli生成的项目,采用的vue-router的history模式。到这里相信大部人还是类似了,接下来就是一个坑死人不偿命的网上诸多博客都在采用的巨坑。

在进行打包的时候,很多博客里都写了,将/config/index.js下,build中的assetsPublicPath从/改为./。我很后悔,为什么当初这样照做的时候不去思考为什么,为什么要这样做,凭什么?如果这个有问题为什么webpack生成的时候不改反而一直放在那里?是谁傻?问题先放在这里,我们先按照那些教程走。修改完后npm run build,这样在你的项目下就生成了一个dist文件夹,里面就是生成的静态内容。假设现在你的dist文件夹已经在你的云服务器中了。接下来开始nginx的配置。

个人采用的是sudo apt-get install nginx安装的nginx,现在在命令行下,

cd /etc/nginx/conf.d/, 并在该目录下 sudo touch vueSite.conf,接下来修改该文件内容。

server {
 listen 3000; # 假设你项目监听的是3000端口
 root /path/to/dist;
 location / {
  try_files $uri $uri/ /index.html;
 }
}

然后

sudo nginx -t检查正确性,无误后sudo nginx -s reload。

接下来在你的浏览器下访问cloudserverhost:3000,就可以访问到你的项目主页了。

目前来看似乎是一切顺利呢,网上的教程真棒棒哦~

然后你可以试试,在cloudserverhost:3000/path/subpath下刷新试试,你会发现,页面没有了,浏览器器里会报错,你会发现请求的js/css等都变成了html页面的内容。这个问题就是出在了./下,我不知道第一个这样写出来的人他的项目是不是很幸运的只有一级路径,又或者他从来不会尝试去刷新页面,否则这个问题是无可避免的,为什么呢?./是相对路径,/则是绝对路径,当你在二级路径下刷新重新请求资源,你的请求路径是什么?把请求路径写出来我们就会发现问题出在哪里了。很难过,我写这篇博客只用不到10分钟,找到这个问题却用了差不多10小时,查了各种方法,我真是万万没想到。

因此,正式上线的项目,没有必要修改/config/index.js下,build中的assetsPublicPath。配置好nginx,你的项目就可以开始起飞了!

以上这篇Vuejs+vue-router打包+Nginx配置的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 阻止子元素响应父元素的onmouseout事件具体实现
Dec 23 Javascript
JS判断两个时间大小的示例代码
Jan 28 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
Aug 04 Javascript
JavaScript表单验证实例之验证表单项是否为空
Jan 10 Javascript
js与applet相互调用的方法
Jun 22 Javascript
微信小程序 简单教程实例详解
Jan 13 Javascript
vue2.0学习之axios的封装与vuex介绍
May 28 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
vue实现的仿淘宝购物车功能详解
Jan 27 Javascript
Javascript通过控制类名更改样式
May 24 Javascript
解析vue、angular深度作用选择器
Sep 11 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 #Javascript
vue-cli项目无法用本机IP访问的解决方法
Sep 20 #Javascript
vue项目中,main.js,App.vue,index.html的调用方法
Sep 20 #Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 #Javascript
微信小程序onLaunch异步,首页onLoad先执行?
Sep 20 #Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
Sep 20 #Javascript
微信小程序使用gitee进行版本管理
Sep 20 #Javascript
You might like
php中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
JS焦点图切换,上下翻转
2011/05/12 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
原生JavaScrpit中异步请求Ajax实现方法
2017/11/03 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python字符串替换的2种方法
2014/11/30 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
分享vim python缩进等一些配置
2018/07/02 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
英国最大的海报商店:GB Posters
2018/03/20 全球购物
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
2014年绩效考核工作总结
2014/12/11 职场文书
人事任命通知书
2015/04/21 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS