Vue前后端分离运用实践中遇到的坑

本文分享了Vue项目中遇到的问题及解决方案,包括多环境打包配置、静态资源缓存、IE11兼容性、路由拦截、跨域请求及SpringMVC处理Axios POST请求参数等。针对IE11的Promise兼容性问题,引入了babel-polyfill,对于跨域问题,通过服务端添加filter实现,并解决了POST请求的预检问题。
摘要由CSDN通过智能技术生成

Vue是一套构建用户界面的渐进式框架,只关注视图层,采用自底向上增量开发的设计,目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件,易于学习上手,主流前端框架。以下是博主在一次从学习到项目运用过程中的经验总结。

一、多环境打包部署配置-测试环境

一般使用vue-cli脚手架创建的vue工程中都会有一个打包的配置目录build,其中对开发环境编译运行和生产环境打包做了相关配置,如果需要自定义测试环境的打包,我们把build.js复制一份,改名为bulid.test.js作为测试环境打包的总入口,同时复制一份webpack.prod.conf.js---->webpack.test.conf.js,修改成测试环境的相应配置即可。最后在config/index.js中增加如下配置

  buildtest: {

    index:path.resolve(__dirname, '../dist/index.html'),

    assetsRoot:path.resolve(__dirname, '../dist'),

    assetsSubDirectory:'static',

    assetsPublicPath:'./',

    productionSourceMap:true,

    devtool:'#source-map',

    productionGzip:false,

    productionGzipExtensions: ['js', 'css'],

    bundleAnalyzerReport:process.env.npm_config_report

  },

这里对几个比较重要的配置做下说明:

1. assetsPublicPath:打包后引用的静态资源位置,这里使用的是相对路径,生产环境部署的时候如果需要把静态资源部署到cdn上,这个配置改为所在cdn的绝对路径即可。

2. productionSourceMap:打包以后是否保留源码map,测试环境为了调试方便,这里选择true,生产环境为了安全需要,建议配置成false。最终打包结果的区别在于是否有下图中的map文件

测试环境配置完成以后,在package.json的scripts对象中增加

"buildtest": "nodebuild/build.test.js"

然后就可以使用npmrun buildtest命令来进行测试环境的打包了。

二、打包静态资源缓存问题

修改下图中的HtmlWebpackPlugin中的hash属性为true

newHtmlWebpackPlugin({

     filename:process.env.NODE_ENV === 'testing'

       ? 'index.html'

       : config.build.index,

     template:'index.html',

     inject:true

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值