vue 项目打包时样式及背景图片路径找不到的解决方式

当使用vue-cli等脚手架搭建的Vue项目进行打包后,会出现样式文件或者背景图片无法正确加载的情况,这是因为在打包过程中,打包工具不会将样式文件和图片等静态资源的相对路径修改为绝对路径,而导致找不到文件的错误。该问题可以通过以下两种方式解决:

方法一:使用publicPath

publicPath是webpack中用来设置资源路径的一个选项,通过设置公共路径,打包后的文件会使用publicPath作为文件的根路径。

  1. 在vue.config.js文件中设置publicPath:

    js
    module.exports = {
    publicPath: './', // 或者使用 /static/
    }

  2. 将样式文件、背景图片等静态资源的相对路径修改为publicPath并重新打包。

例如,将样式文件中的相对路径:

background-image: url('./assets/images/banner.jpg');

修改为publicPath后的绝对路径:

background-image: url('/static/assets/images/banner.jpg');
  1. 打包后,会发现样式文件和图片已经正确加载。

方法二:使用file-loader

file-loader是webpack中的一个loader,可以将一个文件作为模块进行打包,并返回该文件的相对路径,从而解决相对路径问题。

  1. 安装file-loader:

    shell
    npm install file-loader -D

  2. 在vue.config.js文件中配置file-loader:

    js
    module.exports = {
    chainWebpack: config => {
    config.module
    .rule('images')
    .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
    .use('file-loader')
    .loader('file-loader')
    .options({
    name: '[name].[hash:8].[ext]',
    })
    }
    }

  3. 将样式文件中的相对路径修改为file-loader返回的相对路径:

background-image: url('~assets/images/banner.jpg');
  1. 打包后,会发现样式文件和图片已经正确加载。

以上两种方法都可以解决打包时样式及背景图片路径找不到的问题。其中方法一通过设置publicPath来解决,方法二通过使用file-loader来解决。需要根据自己项目的实际情况进行选择。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue 项目打包时样式及背景图片路径找不到的解决方式 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 使用HTML5和CSS3表单验证功能

    下面我将详细讲解使用HTML5和CSS3表单验证功能的完整攻略,包括以下内容: HTML5表单验证属性 在HTML5中,提供了一些表单验证属性,可以在输入框中使用,例如required、pattern、min、max等,以下是它们的作用: required:表示该输入框为必填项,如果未填写必须填写后才能提交表单。 pattern:表示该输入框需要符合一定的正…

    css 2023年6月10日
    00
  • 粗上加粗的IE10字体宽到超出原本的容器

    首先,这个问题是由于IE浏览器在字体加粗的时候,会出现比较明显的宽度变化,造成了字体宽度超出容器。而且在IE10上表现的比较明显。那么针对这个问题,我们可以尝试以下的解决方法: 方法一:使用CSS的transform属性 可以使用CSS3中的transform属性,将文本容器缩放到一个合适的宽度范围。代码如下: .container { overflow: …

    css 2023年6月9日
    00
  • 使用css的background:url设置背景图方法

    下面是关于“使用css的background:url设置背景图方法”的完整攻略: 1. 准备背景图 首先,你需要准备一张背景图,可以是jpg、png、gif等格式的图片。为了避免图片失真,最好选择高清图片。 2. 使用background:url属性 接下来,在CSS中使用background:url属性来设置背景图。这个属性有多个子属性,如下所示: bac…

    css 2023年6月9日
    00
  • css移动端实现与pc端一样的:acitve效果

    为了在移动端实现与PC端一样的active效果,我们可以使用以下几种方法: 方法一:使用:active伪类 CSS中的:active伪类可用于将样式应用于元素被按下时。 示例代码: button:active{ color: red; background-color: yellow; } 这个CSS样式将把按钮在按下时设置为红色文本和黄色背景。这种技术在移…

    css 2023年6月10日
    00
  • js与css的阻塞问题详析

    关于“js与css的阻塞问题详析”的攻略,这里给出以下详细讲解: 什么是阻塞问题? 在前端开发中,阻塞(blocking)通常指浏览器因等待某个操作完成而暂时停滞无法继续执行的现象。在 JS 和 CSS 中都存在阻塞问题。 JS阻塞问题 在 HTML 文件中通过 标签包含的 JavaScript 代码通常是同步加载的,它会以阻塞的形式阻塞页面其它资源的下载和…

    css 2023年6月10日
    00
  • 深入理解和应用css中Float属性

    深入理解和应用CSS中Float属性 概述 在 CSS 中,float 属性用于控制元素的浮动状态,常用于实现元素的排列,并且被广泛应用于响应式网页设计中。本篇文章将全面介绍 float 属性的使用方法以及相关的技巧和注意事项,帮助你更好地理解和应用 float 属性。 Float 属性的基本使用 Float 属性有三个常见的取值:left、right 和 …

    css 2023年6月10日
    00
  • CSS和Javascript简单复习资料

    CSS 和 JavaScript 简单复习资料攻略 为什么需要复习CSS和JavaScript? CSS和JavaScript是Web开发中最常用的两种技术,但它们操作复杂的文档和样式层。鉴于这两种技术的复杂性,我们需要定期进行复习,以回顾概念和最佳实践,以帮助我们在日常工作中更好地应用这些技术。 复习CSS的步骤 1. 基础知识复习 我们需要对CSS的基本…

    css 2023年6月9日
    00
  • 谈谈对css属性margin的理解

    谈谈对CSS属性margin的理解 CSS属性margin用于设置HTML元素的外边框(即元素周围的空白),包括上下左右四个方向。它可以用于控制元素在布局中的位置与尺寸。 值的类型 margin属性的值可以是以下类型之一: 长度值(如 10px,2em) 百分比(如 25%) auto inherit 在样式表中,可以定义多个值,它们用空格分隔开来。比如: …

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部