目录
vue3项目打包发布到服务器后访问页面显示空白
在打包项目时显示空白页问题和一些解决思路
一、打包时整体资源路径
二、路由模式
三、开发和生产环境切换的原因
四、执行构建之前可以进行一些优化
首页 web前端 Vue.js vue3项目打包发布到服务器后访问页面显示空白怎么解决

vue3项目打包发布到服务器后访问页面显示空白怎么解决

May 17, 2023 am 08:19 AM
vue3 服务器

    vue3项目打包发布到服务器后访问页面显示空白

    1、处理vue.config.js文件中的publicPath

    处理如下:

    const { defineConfig } = require('@vue/cli-service')
    module.exports = defineConfig({
        publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
        outputDir: 'dist',
        indexPath: 'index.html',
        lintOnSave: false,
        transpileDependencies: true,
    })
    登录后复制

    2、处理router文件夹中的index.js文件

    处理如下:采用修改后的部分

    import { createRouter, createWebHistory, createWebHashHistory  } from 'vue-router';
    import routes from "./routes";
    
    const router = createRouter({
        //history: createWebHistory(process.env.BASE_URL),//默认时
        history: createWebHashHistory(process.env.BASE_URL),//修改后
        routes
    })
    export default router;
    登录后复制

    解决以上这两步,就解决vue3项目打包发布到服务器后访问页面显示空白问题

    在打包项目时显示空白页问题和一些解决思路

    在项目开发完毕后我们就会进行打包

    npm run build
    登录后复制

    打包生成的文件会在dist文件夹中

    但有时候打开index.html 会出现空白页面

    vue3项目打包发布到服务器后访问页面显示空白怎么解决

    接下来我们从几个方面来进行分析:

    一、打包时整体资源路径

    根据实际情况要判断 是/ 还是 ./

    vue3项目打包发布到服务器后访问页面显示空白怎么解决

    在vue-ui 里配置:

    vue3项目打包发布到服务器后访问页面显示空白怎么解决

    在vue.config.js里配置:

    module.exports = {
    //基本路径 文件打包后放的位置
    publicPath:‘./',
     
    //默认输出文件夹为dist,填入的名字为打包后的文件名
    outputDir:‘name',
     
    // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。资源放的目录
    assetsDir: “./static”,
     
    // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径 index的路劲和名字
    indexPath: ‘./index.html',
     
    //打包后是否生成map文件,map文件能看到错误代码位置,设置为false不生成map文件,打包体积缩小
    productionSourceMap: false,
    }
    登录后复制

    二、路由模式

    是哈希 还是 历史模式

    推荐 哈希模式 兼容性更高 #以后路径不会发送给服务器 避免一些错误

    const router = new VueRouter({
      routes,
      mode:'hash',
    })
    登录后复制

    三、开发和生产环境切换的原因

    因为我们开发环境时

    npm run serve 模拟的是本地服务器

    打包成dist文件夹 导致端口等一些变化 当中的内容请求不过来 所以导致空白页

    我们可以简单部署本地服务器让 dist 跑起来

    创建文件夹

    • 在文件夹终端 初始化 npm npm init -y

    • 安装 express npm i express -S

    • 把dist 复制到新文件夹中

    • 创建 app.js 写代码

    开启gzip 减小文件体积 使传输速度更快

    • 安装对应包 npm install compression -p

    • 导入包 const compression = require('compression')

    • 启用中间件 app.use(compression())

    使用PM2 管理应用

    • 安装 npm i pm2 -g

    • 启动项目:pm2 start .\app.js --自定义名称

    • 查看运行项目 pm2 ls

    • 重启项目 pm2 restart 自定义名称(ID)

    • 停止项目 pm2 stop 自定义名称(ID)

    • 删除项目 pm2 delete 自定义名称(ID)

    vue3项目打包发布到服务器后访问页面显示空白怎么解决

    app.js:

    const express = require('express')
    const app = express()
     
    const compression = require('compression')
     
    app.use(compression()) // 一定要把这一行写在 静态资源托管之前
    app.use(express.static('./dist'))
     
    app.listen(80,()=> {
      console.log('server running at http://127.0.0.1')
    })
    登录后复制

    在这里能跑起来 dist 给后端大哥也不成问题了

    四、执行构建之前可以进行一些优化

    在 vue.confjg.js 中分别设置 本地服务 和 构建 的入口文件

    module.exports = {
      chainWebpack:config=>{
        //发布模式
        config.when(process.env.NODE_ENV === 'production',config=>{
          //entry找到默认的打包入口,调用clear则是删除默认的打包入口
          //add添加新的打包入口
          config.entry('app').clear().add('./src/main-prod.js')
     
          //使用externals设置排除项
          config.set('externals',{
            vue:'Vue',
            axios:'axios',
            lodash:'_',
            echarts:'echarts',
            nprogress:'NProgress',
          })
     
    // 在项目的根目录创建一个vue.config.vue文件,添加上 chainWebpack,修改args里的参数配置,重新返回就可以  这里是 判断是开发版本 还是 发布版本
          config.plugin('html').tap(args => {
            args[0].isProd = true
            return args
          })
     
        })
        //开发模式
        config.when(process.env.NODE_ENV === 'development',config=>{
          config.entry('app').clear().add('./src/main-dev.js')
     
          config.plugin('html').tap(args => {
            args[0].isProd = false
            return args
          })
        })
     
      }
    }
    登录后复制
    • main-dev.js 开发版本总入口

    • main-prod.js 发布版本总入口 在这里根据开发版本改进 删除不需要的依赖项 改用cdn引入、配置路由懒加载的插件......

    以上是vue3项目打包发布到服务器后访问页面显示空白怎么解决的详细内容。更多信息请关注PHP中文网其他相关文章!

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    3 周前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳图形设置
    3 周前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您听不到任何人,如何修复音频
    3 周前 By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25:如何解锁Myrise中的所有内容
    4 周前 By 尊渡假赌尊渡假赌尊渡假赌

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    电驴搜索连不上服务器如何解决 电驴搜索连不上服务器如何解决 Jan 25, 2024 pm 02:45 PM

    解决办法:1、检查电驴设置,确保已输入正确的服务器地址和端口号;2、检查网络连接,确保计算机已连接到互联网,并重置路由器;3、检查服务器是否在线,如果您的设置和网络连接都没有问题,则需要检查服务器是否在线;4、更新电驴版本,访问电驴官方网站,下载最新版本的电驴软件;5、寻求帮助。

    无法连接到RPC服务器导致无法进入桌面的解决方法 无法连接到RPC服务器导致无法进入桌面的解决方法 Feb 18, 2024 am 10:34 AM

    RPC服务器不可用进不了桌面怎么办近年来,计算机和互联网已经深入到我们的生活中的各个角落。作为一种集中计算和资源共享的技术,远程过程调用(RPC)在网络通信中起着至关重要的作用。然而,有时我们可能会遇到RPC服务器不可用的情况,导致无法进入桌面。本文将介绍一些可能导致此问题的原因,并提供解决方案。首先,我们需要了解RPC服务器不可用的原因。RPC服务器是一种

    CentOS安装fuse及CentOS安装服务器详解 CentOS安装fuse及CentOS安装服务器详解 Feb 13, 2024 pm 08:40 PM

    作为一名LINUX用户,我们经常需要在CentOS上安装各种软件和服务器,本文将详细介绍如何在CentOS上安装fuse和搭建服务器的过程,帮助您顺利完成相关操作。CentOS安装fuseFuse是一个用户空间文件系统框架,允许非特权用户通过自定义文件系统实现对文件系统的访问和操作,在CentOS上安装fuse非常简单,只需按照以下步骤操作:1.打开终端,以root用户登录。2.使用以下命令安装fuse软件包:```yuminstallfuse3.确认安装过程中的提示,输入`y`继续。4.安装完

    如何将Dnsmasq配置为DHCP中继服务器 如何将Dnsmasq配置为DHCP中继服务器 Mar 21, 2024 am 08:50 AM

    DHCP中继的作用是将接收到的DHCP数据包转发到网络上的另一个DHCP服务器,即使这两个服务器位于不同的子网中。通过使用DHCP中继,您可以实现在网络中心部署一个集中式的DHCP服务器,并利用它为所有网络子网/VLAN动态分配IP地址。Dnsmasq是一种常用的DNS和DHCP协议服务器,可以配置为DHCP中继服务器,以帮助管理网络中的动态主机配置。在本文中,我们将向您展示如何将dnsmasq配置为DHCP中继服务器。内容主题:网络拓扑在DHCP中继上配置静态IP地址集中式DHCP服务器上的D

    用PHP构建IP代理服务器的最佳实践指南 用PHP构建IP代理服务器的最佳实践指南 Mar 11, 2024 am 08:36 AM

    在网络数据传输中,IP代理服务器扮演着重要的角色,能够帮助用户隐藏真实IP地址,保护隐私、提升访问速度等。在本篇文章中,将介绍如何用PHP构建IP代理服务器的最佳实践指南,并提供具体的代码示例。什么是IP代理服务器?IP代理服务器是一种位于用户与目标服务器之间的中间服务器,它充当用户与目标服务器之间的中转站,将用户的请求和响应进行转发。通过使用IP代理服务器

    如何查看服务器状态 如何查看服务器状态 Oct 09, 2023 am 10:10 AM

    查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。详细介绍:1、使用命令行工具,在Linux或Unix服务器上,可以使用命令行工具来查看服务器的状态;2、使用图形界面工具,对于具有图形界面的服务器操作系统,可以使用系统提供的图形界面工具来查看服务器状态;3、使用监控工具,可以使用专门的监控工具来实时监视服务器的状态等等。

    如何开启TFTP服务器 如何开启TFTP服务器 Oct 18, 2023 am 10:18 AM

    开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。详细介绍:1、选择TFTP服务器软件,首先需要选择适合自己需求的TFTP服务器软件,目前有很多可供选择的TFTP服务器软件,例如Tftpd32、PumpKIN、tftp-hpa等,这些软件都提供了简单易用的界面和配置选项;2、下载和安装TFTP服务器软件等等。

    epic服务器离线进不了游戏怎么办?epic离线进不了游戏解决方法 epic服务器离线进不了游戏怎么办?epic离线进不了游戏解决方法 Mar 13, 2024 pm 04:40 PM

      epic服务器离线进不了游戏怎么办?这个问题想必很多小伙伴都有遇到过,出现了此提示就是导致正版的游戏无法启动,那么出现这个问题一般是网络和安全软件干扰导致的,那么应该怎么解决呢,本期小编就来和大伙分享解决方法,希望今日的软件教程可以帮助各位解决问题。  epic服务器离线进不了游戏怎么办:  1、很可能是被安全软件干扰了,将游戏平台和安全软件关闭在重启。  2、其次就是网络波动过大,尝试重启一次路由器,看看是否有效,如果条件可以的话,可以尝试使用5g移动网络来进行操作。  3、然后有可能是更

    See all articles