• 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' 
        },
    

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

  • 相关阅读:
    setContentView和inflate区别
    eclipse中自动添加注释(作者,时间)
    ImageLoader must be init with configuration before using
    repo用法详解
    SQL 中的N'xx'的作用
    DataRow复制一行到另一个DataTable
    MS SQL SERVER搜索某个表的主键所在的列名
    Win2008 Server R2个人PC化设置
    C# DataTable的詳細用法
    如何解决arcmap中的反走样问题。
  • 原文地址:https://www.cnblogs.com/sinosaurus/p/8678558.html
Copyright © 2020-2023  润新知