Vue项目webpack打包部署到服务器的实例详解


Posted in Javascript onJuly 17, 2017

Vue项目webpack打包部署到服务器

这篇博文主要说的就是我今天遇到的问题,而且在经过我的询问,好多人在打包部署的时候都遇到了一些问题,下面就来说下,如何将Vue项目放置在服务器上,这里以Tomcat为例。

必须要配置的就是/config/index.js

在vue-cli webpack的模板下的/config/index.js,我们可以看到assetsPublicPath这个键,并且这个东西还出现了两次,我第一次打包的时候,只是修改了最下面的assetsPublicPath,将它从'/'变为了./,然后我就执行了npm run build,打包成功之后,可以看到项目中会多出来一个文件夹,就是dist,里面有一个static文件夹和index.html,然后我就将dist目录下的文件拷贝到Tomcat服务器下,会发现访问到的是一个空白页面,但是当我把它放在..\webapps\ROOT目录下,它就可以访问了

Tomcat下面的目录结构:

Vue项目webpack打包部署到服务器的实例详解

但是这肯定是不行的,然后我就开始寻找答案,也根据别人的一些步骤做了下来,后来发现还是有一些问题的,没有办法访问到主页面,虽然吧,一直都没成功,但是我也没放弃,然后就综合了一下问答里面别人说的,进行了几次尝试,最后成功了。(给大家一个小建议:别放弃就好)。

下面的就是我的config/index.js的配置:

// see http://vuejs-templates.github.io/webpack for documentation.
var path = require('path')

module.exports = {
 build: {
  env: require('./prod.env'),
  index: path.resolve(__dirname, '../dist/index.html'),
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: './',
  productionSourceMap: true,
  // Gzip off by default as many popular static hosts such as
  // Surge or Netlify already gzip all static assets for you.
  // Before setting to `true`, make sure to:
  // npm install --save-dev compression-webpack-plugin
  productionGzip: false,
  productionGzipExtensions: ['js', 'css'],
  // Run the build command with an extra argument to
  // View the bundle analyzer report after build finishes:
  // `npm run build --report`
  // Set to `true` or `false` to always turn it on or off
  bundleAnalyzerReport: process.env.npm_config_report
 },
 dev: {
  env: require('./dev.env'),
  port: 8080,
  autoOpenBrowser: true,
  assetsSubDirectory: 'static',
  assetsPublicPath: './',
  proxyTable: {},
  // CSS Sourcemaps off by default because relative paths are "buggy"
  // with this option, according to the CSS-Loader README
  // (https://github.com/webpack/css-loader#sourcemaps)
  // In our experience, they generally work as expected,
  // just be aware of this issue when enabling this option.
  cssSourceMap: false
 }
}

可以发现,我就改了两处,就是assetsPublicPath所对应的值,我这里用的是./,我也用webapps下的命的项目名试过,只是没得到我想要的结果,后来我还是改成了./

使用vue-router的情况

当你在项目中使用vue-router的时候,就需要给src/router/index.js添点东西,如下面:

export default new Router({
 mode : 'history',
 base: '/ttms/', //添加的地方
 ...
 }

然后执行npm run dev,将打包后的文件放在Tomcat的目录下的WebApps下的ttms中,然后,就可以访问到了:http://localhost:8080/ttms/

以上就是关于Vue项目webpack打包部署到服务器的实例详解的资料,关于Vue的开发文章本站还很多,希望大家搜索参阅,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
form中限制文本字节数js代码
Jun 10 Javascript
限制textbox或textarea输入字符长度的JS代码
Oct 16 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
js格式化时间和js格式化时间戳示例
Feb 10 Javascript
ExtJS4 表格的嵌套 rowExpander应用
May 02 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
js禁止浏览器的回退事件
Apr 20 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
Oct 31 Javascript
详解Nuxt.js Vue服务端渲染摸索
Feb 08 Javascript
weui中的picker使用js进行动态绑定数据问题
Nov 06 Javascript
微信小程序自定义头部导航栏(组件化)
Nov 15 Javascript
Vue如何清空对象
Mar 03 Vue.js
JS中Safari浏览器中的Date
Jul 17 #Javascript
Vue.extend构造器的详解
Jul 17 #Javascript
原生js实现密码输入框值的显示隐藏
Jul 17 #Javascript
extjs简介_动力节点Java学院整理
Jul 17 #Javascript
jQuery Autocomplete简介_动力节点Java学院整理
Jul 17 #jQuery
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 #jQuery
jQuery Form插件使用详解_动力节点Java学院整理
Jul 17 #jQuery
You might like
PHP导入Excel到MySQL的方法
2011/04/23 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
jQuery中innerWidth()方法用法实例
2015/01/19 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
js new Date()实例测试
2019/10/31 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
更新修改后的Python模块方法
2019/03/03 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
jupyter 添加不同内核的操作
2021/02/06 Python
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
super()与this()的区别
2016/01/17 面试题
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
建筑工程实习自我鉴定
2013/09/19 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
Pandas-DataFrame知识点汇总
2022/03/16 Python