vue项目之webpack打包静态资源路径不准确的问题

下面详细讲解 "vue项目之 webpack打包静态资源路径不准确的问题" 的攻略流程,如下:

问题描述

在使用 webpack 打包 vue 项目时,如果项目中使用了静态资源(如图片、字体等),在打包后访问页面时可能会出现静态资源路径不正确的问题。

解决方案

方案一:配置 publicPath 参数

webpack 提供了配置 publicPath 参数的方式来解决静态资源路径不正确的问题。具体配置方法如下:

// webpack.config.js

module.exports = {
  output: {
    publicPath: '/'
  }
}

上面的配置可以将静态资源的路径指向根目录。如果静态资源路径的前缀是 /images,那么打包后的路径将为 /images/filename。如果前缀为 /static/images,那么打包后的路径将为 static/images/filename

方案二:使用 file-loader 或 url-loader

如果以上方法不能解决你的问题,你可以尝试使用 file-loaderurl-loader,这两个 loader 可以将静态资源文件复制到打包后的目标目录下。

// webpack.config.js

module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 10000,
              name: 'img/[name].[hash:7].[ext]'
            }
          }
        ]
      },
      {
        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 10000,
              name: 'media/[name].[hash:7].[ext]'
            }
          }
        ]
      },
      {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 10000,
              name: 'fonts/[name].[hash:7].[ext]'
            }
          }
        ]
      }
    ]
  }
}

使用 file-loaderurl-loader 后,我们可以在 webpack 打包结束后,在输出目录下找到对应的静态资源文件。

两个示例:

示例一:

静态资源路径前缀为 ./static,打包后的路径为 /static/images/logo.png

<template>
  <div>
    <img src="./static/images/logo.png" alt="logo">
  </div>
</template>

webpack.config.js 文件中配置:

module.exports = {
  output: {
    publicPath: '/'
  }
}

示例二:

静态资源路径为绝对路径 /static/images,打包后的路径为 /static/images/logo.png

<template>
  <div>
    <img src="/static/images/logo.png" alt="logo">
  </div>
</template>

webpack.config.js 文件中配置:

module.exports = {
  output: {
    publicPath: '/'
  }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue项目之webpack打包静态资源路径不准确的问题 - Python技术站

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

相关文章

  • flex实例代码

    那么我们先来看一个基本的 flex 实例代码: <div class="container"> <div class="item">1</div> <div class="item">2</div> <div class="…

    其他 2023年4月16日
    00
  • 一道常被人轻视的web前端常见面试题(JS)

    一道常被人轻视的web前端常见面试题(JS) 完整攻略 题目描述 假设有一个 getRandom() 函数可以随机生成 0 ~ 9 之间的整数,请编写一个 getRandomArray(n) 函数,返回长度为 n 的由随机整数组成的数组。 解题思路 这道题看起来比较简单,只需要使用 for 循环调用一遍 getRandom 函数,然后存储到结果数组中即可。具…

    other 2023年6月26日
    00
  • javascript中HTMLDOM操作详解

    JavaScript中HTML DOM操作详解 1. 什么是HTML DOM HTML DOM(Document Object Model)是一个标准的编程接口,用于处理HTML文档的结构和内容。它将HTML文档视为一个树形结构,可以通过JavaScript来修改、删除或添加元素,改变样式和属性,以及响应用户的交互行为。 2. HTML DOM 层次结构 H…

    other 2023年6月28日
    00
  • 微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法

    微信小程序 wx:for 与 wx:for-items 与 wx:key 的正确用法攻略 在微信小程序中,wx:for 和 wx:for-items 是用于循环渲染列表的指令,而 wx:key 则是用于标识列表中每个项的唯一性的属性。正确使用这些指令可以提高小程序的性能和用户体验。 1. wx:for 和 wx:for-items 的区别 wx:for 和 …

    other 2023年7月28日
    00
  • 深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)

    深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇) 本篇文章从JavaScript的核心功能、核心概念、核心语法和进阶方法四个角度,全面深入讲解了JavaScript的重要特性和应用场景,是JavaScript高手必读的技术文章。 JavaScript的核心功能 JavaScript的核心功能包括:数据类型、变量、表达式、运…

    other 2023年6月26日
    00
  • Android实现右边抽屉Drawerlayout效果

    Android实现右边抽屉Drawerlayout效果攻略 在Android中,可以使用DrawerLayout来实现抽屉效果,包括左边抽屉和右边抽屉。下面是实现右边抽屉DrawerLayout效果的完整攻略。 步骤一:添加依赖库 首先,在项目的build.gradle文件中添加DrawerLayout的依赖库。在dependencies块中添加以下代码: …

    other 2023年9月7日
    00
  • 帝国cms所有的数据库表结构和字段说明

    下面是帝国 CMS 所有的数据库表结构和字段说明。 1. 表结构 1.1. 表 igg_attachment 该表存储所有的附件信息,包括附件的名称、大小、上传时间、存放路径等。 CREATE TABLE `igg_attachment` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) …

    other 2023年6月25日
    00
  • 洛谷pP2708 硬币翻转

    下面是“洛谷P2708 硬币翻转”的完整攻略,包括题目描述、解题思路和两个示例等方面。 题目描述 有一个 $n\times m$ 的矩阵,每个格子上有一个硬币,正面朝上或者反面朝上。现在你可以进行以下操作: 将第 $i$ 行的硬币全部翻转。 将第 $j$ 列的硬币全部翻转。 问最少需要进行多少次操作,才能使得所有硬币都正面朝上。 解题思路 对于这道题目,我们…

    other 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部