vue项目打包传递至服务器步骤详解

这次给大家带来vue项目打包传递至服务器步骤详解,vue项目打包传递至服务器的注意事项有哪些,下面就是实战案例,一起来看一下。

当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中。我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放到 tomcat 上。 

如果是 vue-cli (非 simple 脚手架),这篇文章可能有点帮助。地址链接:vue-cli 如何打包上线

先来描述一下期间遇到的问题有哪些:

1、打包后将 dist 文件夹和 index.html 放到 tomcat,在浏览器中访问时,出现空白页,f12 提示 404。
2、打包好的静态资源均是绝对路径,无法引入进项目,也是 404。

1、项目目录结构

vue项目打包传递至服务器步骤详解

这是打包后的,所以有 dist 文件夹,打包方式:npm run build。

2、webpack.config.js

vue项目打包传递至服务器步骤详解

这里只是一小部分,因为这边最关键的就是 publicPath,下面会提,这边可以解决静态资源 404 无法引入的问题。

3、npm run build 打包后的文件

npm run build 打包后生成一个 dist 文件夹,这里面的目录:

vue项目打包传递至服务器步骤详解

我对 webpack 打包工具的原理不是很清楚,所以文件夹应该生成什么不是了解。我这边是这样子的。主要是一个主要的 build.js, 因为我们的 index.html 引入的就是这个 js 文件。还有一些图片文件和 ElementUI 生成的 ttf 和 woff。

4、如何放到服务器中。

接下来就是需要将生成的 dist 文件夹和 index.html 文件放到服务器中,只需要这两个。首先我将这两个文件放在同一个文件夹中,我命名为 gas(随意)。

vue项目打包传递至服务器步骤详解

然后将文件夹放到 tomcat 中,我将文件夹放到 tomcat 的 webapps 文件夹目录下:

vue项目打包传递至服务器步骤详解

vue项目打包传递至服务器步骤详解

ok 部署完成,启动 tomcat,你会发现显示一个空白页,一些静态资源都是 404。

5、解决空白页和静态资源无法引入的问题。

1、首先空白页的问题,可以重 f12 中看出来都是绝对路径的原因,而我们打包后,应该的引入路径是相对路径,这时我们需要的是修改 index.html 页面。

看一下没改之前的:

vue项目打包传递至服务器步骤详解

看我 /dist/build.js 引用的是绝对路径,这就导致了在 tomcat 去访问 index.html 页面时,报404。我们需要将路径变成相对路径 ./dist/build/。多一个点,很关键。好了到这里应该主页面可以显示了。

但是你会发现,我的静态资源,我的图片(不包括 img 形式的引入),例如我在 css 中 background:url() 的图片显示404。

2、解决静态资源失效的问题

这就需要修改我们的 webpack.config.js 中的 publicPath 了,默认的 vue-cli 脚手架环境搭建好后,publicPath 是这样的:

vue项目打包传递至服务器步骤详解

可以看到我们的路径是: /dist/。所以这时候我们如果打开页面,静态资源的路径都会是这样子的,并且报错404:http://10.0.0.181:8088/dist/bg.png?fe9b889cea51978538ce352593be0573

显然可以看出和我们想要的路径不一致,上面我贴出来的在 tomcat 的文件目录中我将 dist 和 index.html 都放进了一个 gas 的文件夹中。所以正确的路径应该是这样的:
http://10.0.0.181:8088/gas/dist/bg.png?fe9b889cea51978538ce352593be0573

看出区别了吗!

解决:

所以我需要改变一下 webpack.config.js 中的输出路径 publicPath: /gas/dist/。将最外层的文件夹路径加进去,这样就可以将静态资源引入进项目了。

ok,到现在为止,最主要的两个问题解决了,一个是 index.html 空白页,另一个是 静态资源路径不正确的问题。

6、index.html 页面中的link 和 srcipt 引用的资源失效问题:

原因还是路径的地址不对:

妥协的解决方法是:将自己引用的资源手动放到打包出来的 dist 文件夹内,然后在 index.html 中按照 dist 的相对路径进行引用。

vue项目打包传递至服务器步骤详解

代码中的 icon.ico 就是我手动将 icon 图标放到 dist 文件夹中,然后按照对应的引用路径进行引用。其他的 css 和 js 引用一样。

7、待解决的问题:

1、在我的项目中,使用了 ElementUI 框架,但是在打包放到服务器中后,发现按钮样式变了,所有的 padding 失效,所有我只能自己手动进行添加样式。

2、在我的 index.html 中如果引入 link css文件时,还是没办法引入相对路径,所以我将 css 样式都放到了各自的组件中的 style 中了,其他的一般都是用 npm 注入依赖的形式进行安装。

8、网上搜索到的相关问题和解决方法。

1、求助!Vue项目用Webpack打包后放到服务器上,但访问是空白页?弄了好久了也不知道什么原因

2、vue项目中,npm run build生成的index.html文件只有放在根目录下打开才能生效,怎么解决?

3、Vue应用部署到服务器的正确方式

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

PHP共享内存使用与信号控制使用详解

PHP快速实现数组去重方法

以上就是vue项目打包传递至服务器步骤详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2762406.html

(0)
上一篇 2025年3月8日 09:55:29
下一篇 2025年3月8日 09:55:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue-cli打包上线步骤详解

    这次给大家带来vue-cli打包上线步骤详解,vue-cli打包上线的注意事项有哪些,下面就是实战案例,一起来看一下。 以vue创建的官方例子为例子,我们在开发环境的时候会 npm run dev ,生成 而想要打包成一份很简单, 只需要 …

    2025年3月8日 编程技术
    200
  • Vue实现树形视图数据步骤详解

    这次给大家带来Vue实现树形视图数据步骤详解,Vue实现树形视图数据的注意事项有哪些,下面就是实战案例,一起来看一下。 这是模拟的树形图数据 let all={ name:’all’, children:{ A:{ name:’A’, ch…

    2025年3月8日 编程技术
    200
  • React Form组件封装步骤详解

    这次给大家带来React Form组件封装步骤详解,React Form组件封装的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 对于网页系统来说,表单提交是一种很常见的与用户交互的方式,比如提交订单的时候,需要输入收件人、手机号、…

    2025年3月8日
    200
  • 把v-for中表格导出步骤详解

    这次给大家带来把v-for中表格导出步骤详解,v-for中表格导出的注意事项有哪些,下面就是实战案例,一起来看一下。 一、需要安装以下依赖 npm install -S file-saver xlsx npm install -D scri…

    编程技术 2025年3月8日
    200
  • Node.js+Koa实现JWT用户认证步骤详解

    这次给大家带来Node.js+Koa实现JWT用户认证步骤详解,Node.js+Koa实现JWT用户认证的注意事项有哪些,下面就是实战案例,一起来看一下。 一、前置知识 基于Token的身份验证 Koajs 中文文档 Koa 框架教程 二、…

    2025年3月8日 编程技术
    200
  • Vue父子组件数据传递方法总结(附代码)

    这次给大家带来Vue父子组件数据传递方法总结(附代码),Vue父子组件数据传递方法总结的注意事项有哪些,下面就是实战案例,一起来看一下。 当我们在书写 vue 组件的时候,也许可能会用到数据传递;将父组件的数据传递给子组件,有时候也需要通过…

    2025年3月8日 编程技术
    200
  • vue地区选择组件使用步骤详解

    这次给大家带来vue地区选择组件使用步骤详解,vue地区选择组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 概述 主要用于全国地区数据的操作,包括省,市,区三级联动,地区数据的添加和删除; 在操作地区数据时,以前也用过树形的地区…

    编程技术 2025年3月8日
    200
  • vue mint-ui tabbar组件使用步骤详解

    这次给大家带来vue mint-ui tabbar组件使用步骤详解,vue mint-ui tabbar组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 新建tabbar.vue 主页 积分商城 微社区 我的 export def…

    编程技术 2025年3月8日
    200
  • Vue内引入tinymce富文本编辑器步骤详解

    这次给大家带来Vue内引入tinymce富文本编辑器步骤详解,Vue内引入tinymce富文本编辑器的注意事项有哪些,下面就是实战案例,一起来看一下。 项目中原本使用的富文本编辑器是 wangEditor,这是一个很轻量、简洁编辑器 但是公…

    2025年3月8日 编程技术
    200
  • Vue.js双向绑定实现步骤说明

    这次给大家带来Vue.js双向绑定实现步骤说明,Vue.js双向绑定实现的注意事项有哪些,下面就是实战案例,一起来看一下。 这篇体验一下VUE的双向绑定 当前时刻{{ CurrentTime }} var app = new Vue({ e…

    2025年3月8日
    200

发表回复

登录后才能评论