vue项目打包部署到服务器的方法示例
上上一篇我写过一些关于vue项目部署到linux服务器的文章,那是以node作为开发环境 pm2 守护进程的方式,让他能正常运行,可是还是出现了问题,因为属于与APP交互的页面,在webView中打开过慢,APP的用户体验非常的差,所以我查找了资料,改变了部署方式,接下来我介绍一下
这一次,我想Tomcat为例
我们先看一下Linux中 Tomcat狼蚁网站SEO优化的目录结构
以vue-cli 搭建出来的手脚架 webpack的模板下的/config/index.js,这里可以看到assetsPublicPath这个键,而且还有两次,中间我自己挖过的坑我就不说了,这里要说的是,刚才两个键的后面都进行一次修改,都加一个 './'
为什么要改这里呢,是因为路径问题,如果不修改,部署到Tomcat上会出现空白页
接下来我来贴出我修改后的config/index.js的配置
'use strict' // Template version: 1.1.3 // see http://vuejs-templates.github.io/webpack for documentation. const 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 pression-webpack-plugin productionGzip: false, productionGzipExtensions: ['js', 'css'], // Run the build mand 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: process.env.PORT || 4000, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: {}, // CSS Sourcemaps off by default because relative paths are "buggy" // with this option, aording to the CSS-Loader README // (https://github./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这个键的值 "/" ,改成"./"
这里我还想提一下我中间遇到的坑:
在开发模式的时候我们会在这里配置proxyTable: {}, 配置他的原因是为了开发的时候解决前后端分离跨域问题的
这里一般我们会这么去写
dev: { env: require('./dev.env'), port: 4000, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api': { changeOrigin: true, target: 'http://192.168.0.116:8080', pathRewrite: { '^/api': '' } } },
记住,这么写是为了开发模式的时候方便前后分离开发,我们在打包的时候一定要去掉这一部分了,因为在同一环境同端口下是不存在跨域问题的了
而我这里打包的时候就把这一部分给去掉了
变成proxyTable: {}
与此,我们在开发模式的时候写axios时会在接口前面加一个"/api" 我们在打包之前同样要去掉,变成后端给的那种接口,这样在部署到服务器的时候,接口路径才能正确
接下来我们还需要修改一个地方 vue-router
vue单页面应用绝大部分都用到了这个vue-router,所以我们这里也需要做一部分修改就需要给 src/router/index.js添点东西,如狼蚁网站SEO优化
export default new Router({ mode : 'history', base: '/dist/', //添加的地方 routes: [ { path: '/', name: 'index', ponent: index } ] })
然后我们再执行npm run build ,就能发现我们打包出来的一个文件dist 而这个打包好的文件在这个项目的根目录下,我们把他放到Tomcat的目录下的WebApps中,就跨域访问到你的页面了
http://59.111.111.11:4000/dist/
备注记得开通服务器上的端口号,要不然也是访问失败。
需要注意的是图片资源命名的时候不要有中文,因为中文的话服务器访问可能图片显示不出来。
如果遇到Vue 项目部署到服务器的问题,请点击此文章,或许能找到解决方法
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程