如何配置vue.config.js 处理static文件夹下的静态文件

下面是如何配置vue.config.js处理static文件夹下静态文件的完整攻略。

首先,需要明确一下vue-cli会默认将static文件夹里的文件拷贝到打包后的根目录中,并不会对其进行任何处理,因此我们需要配置vue.config.js来处理这些静态文件。

以下是配置过程:

步骤一:创建vue.config.js文件

在项目根目录下创建vue.config.js文件,并在其中添加以下代码:

module.exports = {
  // 基本路径
  publicPath: '/',
  // 构建时的输出目录
  outputDir: 'dist',
  // 放置静态资源的目录
  assetsDir: 'static'
};

这里的assetsDir字段就是告诉webpackstatic文件夹下的静态资源打包到dist/static目录中。

步骤二:配置loader

我们可以通过chainWebpack来配置loader,也可以通过configureWebpack来配置,这里我们选择后者,修改vue.config.js文件如下:

module.exports = {
  // 基本路径
  publicPath: '/',
  // 构建时的输出目录
  outputDir: 'dist',
  // 放置静态资源的目录
  assetsDir: 'static',
  // 配置loader
  configureWebpack: {
    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]'
            }
          }
        }
      ]
    }
  }
};

这里的module.rules就是webpack中对loader的配置。例如,我们用到了url-loader加载器。

示例一:处理图片

比如我们有一个banner.png的图片,存放在static/images目录下,现在我们想要在页面上引用这张图片,可以这样写:

<template>
  <div>
    <img src="~@/static/images/banner.png" alt="banner" />
  </div>
</template>

vue中引入图片可以使用@/或者~@/,也可以直接使用相对路径。这里需要注意的是,在src属性中需要加上~@前缀,告诉webpack这是在引用static文件夹下的资源。

示例二:处理字体文件

同理,如果我们有一个字体文件iconfont.ttf,存放在static/fonts目录下,想要在页面中引用,可以这样写:

@font-face {
  font-family: 'iconfont';
  src: url('~@/static/fonts/iconfont.ttf') format('truetype');
}

同样地,需要在url中加上~@前缀。

以上就是如何配置vue.config.js处理static文件夹下静态文件的完整攻略,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何配置vue.config.js 处理static文件夹下的静态文件 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 详解如何理解vue的key属性

    以下是详解如何理解vue的key属性的完整攻略: 1. 什么是Vue的key属性? Vue中的key属性是在使用v-for指令时用来提高性能和防止数据混乱的重要属性。key属性可以为每个v-for循环中的子元素设定一个唯一的标识符,Vue在渲染虚拟DOM节点时会根据key属性来判断哪些节点需要被更新,从而减少页面重新渲染的量,提高页面性能。 2. 如何理解V…

    Vue 2023年5月28日
    00
  • Vue3中Vuex的详细使用方法

    下面是Vue3中Vuex的详细使用方法攻略。 什么是Vuex Vuex是Vue.js中的状态管理模式,该模式中的核心是store(仓库),store包含着状态(state)、更新状态的方法(mutations)和响应状态变化的方法(actions)。Vuex能够集中处理共享状态的逻辑,方便进行状态的修改和管理。 Vuex的安装和配置 在Vue3项目中,安装和…

    Vue 2023年5月28日
    00
  • Vue请求JSON Server服务器数据的实现方法

    当你使用Vue来开发Web应用时,你需要获取外部数据并在网页应用中展示这些数据。JSON Server是一个快速的、简单的node.js库,可以模拟RESTful APIs,生成假数据,并对数据进行增删改查操作。下面是在Vue中如何实现JSON Server服务器数据请求。 1. 安装JSON Server 首先,你需要安装JSON Server。在命令行中…

    Vue 2023年5月28日
    00
  • 一文带你从零开始搭建vue3项目

    一文带你从零开始搭建vue3项目 前言 Vue 3 是一款快速、小巧、易上手的前端框架,是Vue.js框架的最新版本。它具有较高的性能,提供更好的开发者体验,可帮助我们更快速地构建出一个高性能的web应用。 本文将为大家详细讲解如何从零开始搭建Vue3项目以及如何创建组件、路由和状态管理等方面。 准备工作 要开始构建 Vue3 项目,需要安装 Node.js…

    Vue 2023年5月28日
    00
  • 一篇文章看懂Vue组合式API

    一篇文章看懂Vue组合式API 什么是Vue组合式API Vue组合式API是Vue 3中新增的语法特性,它提供了一种新的组件编写方式,能够更加优化组件的可复用性、可维护性和可测试性。与Vue 2.x的Options API相比,Vue 3.x的组合式API更加灵活且容易理解使用。本文将介绍Vue组合式API的使用方法。 setup函数 在使用Vue组合式A…

    Vue 2023年5月28日
    00
  • Vue使用provide各种传值后inject获取undefined的问题及解决

    在Vue中,可以通过provide和inject实现非父子组件之间的数据传递。但是,在实际使用中,会遇到使用provide传递的值在inject中获取时出现undefined的情况。本文将详细讲解这个问题以及解决方案。 问题表现 使用provide向子组件提供数据,但在子组件中使用inject获取时,却获取到了undefined。 问题原因 在Vue中,pr…

    Vue 2023年5月28日
    00
  • Vue2 与 Vue3 的数据绑定原理及实现

    Vue2 与 Vue3 的数据绑定原理及实现 Vue2 的数据绑定原理及实现 Vue2 的数据绑定原理: Vue2 的数据绑定使用的是 Object.defineProperty,基于数据劫持来监听数据变化。(即通过 getter 和 setter 对数据的读写进行劫持实现数据监听) Vue2 实现数据绑定的步骤: 初始化:生成观察者Watcher对象,收集…

    Vue 2023年5月27日
    00
  • Vue组件之间传值/调用几种方式

    下面我将分享一下Vue组件之间传值/调用几种方式的完整攻略。 1. 父子组件之间传值 1.1. Props 驱动方式 在Vue中,通过Props可以将数据以标签属性的方式传递给子组件。我们可以在子组件中通过props属性接收父组件传递过来的数据,进而渲染到页面上。下面是一个示例: <!–父组件–> <template> <d…

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