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 相关文章推荐
jquery 输入框数字限制插件
Nov 10 Javascript
jquery 年会抽奖程序
Dec 22 Javascript
分享一些常用的jQuery动画事件和动画函数
Nov 27 Javascript
理解Javascript的call、apply
Dec 16 Javascript
jQuery mobile 移动web(4)
Dec 20 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
ajax异步请求详解
Jan 06 Javascript
详解基于webpack&gettext的前端多语言方案
Jan 29 Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 Javascript
webpack的pitching loader详解
Sep 23 Javascript
Java Varargs 可变参数用法详解
Jan 28 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 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实现的MySQL数据浏览器
2007/03/11 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
Laravel中注册Facades的步骤详解
2016/03/16 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
python安装twisted的问题解析
2018/08/21 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
Python中的heapq模块源码详析
2019/01/08 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
Django 路由层URLconf的实现
2019/12/30 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
家长会主持词
2014/03/26 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
失恋33天观后感
2015/06/11 职场文书
法定代表人身份证明书
2015/06/18 职场文书