当前位置:   article > 正文

vue项目使用hbuilder打包后,真机测试白屏

opening index.html over file:// won't work
在命令行直接运行 npm run build后,生成的dist文件中,直接打开index.html文件
  1. Tip: built files are meant to be served over an HTTP server.
  2. Opening index.html over file:// won't work.
打包完后,提示只能在服务端可以开启,file模式下无法工作

问题: 使用vue脚手架开发的spa项目,在打包为app时,出现白屏现象
原因: 想要在手机端打开,等同于在本地file模式下打开,因而需要作出判断

会出现两种结果,在pc端

  • 打开后白屏;
  • 可以打开页面

处理方案 :

打开后白屏
  1. 原因在于打开需要在服务端,而不是本地打开file模式下。需要修改 webpack中的代码。根路径,改为相对路径
  1. // config文件夹 ==> index.js ==> build 中修改 assetsPublicPath 为相对路径
  2. build: {
  3. // Template for index.html
  4. index: path.resolve(__dirname, '../dist/index.html'),
  5. // Paths
  6. assetsRoot: path.resolve(__dirname, '../dist'),
  7. assetsSubDirectory: 'static',
  8. assetsPublicPath: '/', 修改为'./' 根路径变为相对路径
  1. vue-router中模式修改为hash 如果是history下,页面无法显示图片等
  1. // src文件夹 ==> router文件夹 ==> index.js中找到 new Router
  2. export default new Router({
  3. mode: 'history', //修改为hash 或者直接去除
  4. routes: []
可以打开页面

在上面两个都已经解决完后,使用hbuild打包为app后,在手机端依旧打开白屏。此时已经不是模式等问题,而应该考虑其他问题,比如es6语法支持程度等等

  1. 因为promise支持程度不是很好,需要使用 babel-polyfill进行支持
  1. //build文件夹 ==> webpack.base.conf.js中添加
  2. //下载包后,引入
  3. require('babel-polyfill')
  4. //入口文件中 添加
  5. entry: {
  6. //为了 es6 的promise
  7. app: ['babel-polyfill','./src/main.js'] / / app: './src/main.js'
  8. },

经过这些处理,在手机端应该就可以查看了

转载于:https://www.cnblogs.com/sinosaurus/p/8678558.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/245558
推荐阅读
相关标签
  

闽ICP备14008679号