zoukankan      html  css  js  c++  java
  • vue项目使用hbuilder打包后,真机测试白屏

    在命令行直接运行 npm run build后,生成的dist文件中,直接打开index.html文件

    Tip: built files are meant to be served over an HTTP server.
      Opening index.html over file:// won't work.
    
    打包完后,提示只能在服务端可以开启,file模式下无法工作

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

    会出现两种结果,在pc端

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

    处理方案 :

    打开后白屏

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

    可以打开页面

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

        //build文件夹 ==> webpack.base.conf.js中添加
    
        //下载包后,引入
        require('babel-polyfill')
    
        //入口文件中 添加
         entry: {
          //为了 es6 的promise
          app: ['babel-polyfill','./src/main.js']  / /  app: './src/main.js' 
        },
    

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

  • 相关阅读:
    zookeeper 分布式锁
    kafka比较好的文章
    HTTP深入浅出 http请求
    火狐浏览器下event对象的兼容处理
    透明度轮播框架封装注意点zIndex值不能忘记
    wamp的phpmyadmin无法访问Forbidden的解决方案
    同一DIV内,两个行内块元素不对齐的解决方案
    tween.js运动曲线
    什么是闭包?闭包的优缺点?
    firefox和IE9不支持对icon font字体的跨域访问
  • 原文地址:https://www.cnblogs.com/sinosaurus/p/8678558.html
Copyright © 2011-2022 走看看