如何配置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.js一个文件对应一个组件实践

    当我们在开发Vue.js应用时,往往会使用组件化的思想来管理和组织我们的代码,这个过程中一个常用的实践就是“一个文件对应一个组件”。这种方式可以使我们的代码更加清晰和易于维护。下面详细讲解“Vue.js一个文件对应一个组件实践”的完整攻略。 创建Vue组件文件 首先,在我们的项目根目录下创建一个组件文件夹。如: src/components/ 在这个文件夹下…

    Vue 2023年5月28日
    00
  • 深入理解Vue-cli4路由配置

    下面是”深入理解Vue-cli4路由配置”的完整攻略。 Vue-cli4路由配置概述 Vue-cli4是Vue.js官方提供的一个CLI工具,其通过配置文件进行路由配置。 Vue-cli4支持两种路由模式:history模式和hash模式。在history模式下,使用HTML5 History API,对浏览器的历史记录栈进行修改实现页面跳转,而在hash模…

    Vue 2023年5月29日
    00
  • 浅谈webpack性能榨汁机(打包速度优化)

    我来详细讲解一下“浅谈webpack性能榨汁机(打包速度优化)”的完整攻略。 一、前言 在现在的前端开发中,使用Webpack打包已成为主流,但是Webpack打包速度的问题一直都是众多开发者关注的重点。本文将从Webpack的优化策略和实战两个方面来为大家讲解如何优化Webpack的打包速度。 二、Webpack的优化策略 尽可能少地使用loader 在W…

    Vue 2023年5月28日
    00
  • 错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?

    针对错误码NET::ERR_CERT_DATE_INVALID,我们可以按照以下攻略进行解决。 1. 确认证书是否已过期 这个错误的原因通常是因为网站的 SSL/TLS 证书已过期。所以可以先尝试确认一下证书是否确实已经过期。方法是: 在 Chrome 的地址栏输入被判定错误的网址; 点击后面的“高级”; 在“安全性”模块中点击“证书”; 在弹出的“证书”窗…

    Vue 2023年5月28日
    00
  • vue 中使用 bimface详情

    首先,需要明确的是,要在Vue中使用Bimface详情,需要引入BimFace的JavaScript SDK,并按照BimFace提供的文档设置好BimFace Viewer所需的DOM容器以及相关参数。接下来,我们将详细讲解该过程。 步骤一:引入BimFace SDK 由于BimFace SDK的体积较大,我们一般会将其放在CDN上,通过Vue的compo…

    Vue 2023年5月28日
    00
  • 使用Vue中 v-for循环列表控制按钮隐藏显示功能

    使用Vue中v-for循环列表控制按钮隐藏显示功能分为以下几个步骤: 在Vue实例中定义数据:需要定义一个存储列表数据的数组,以及每个元素对应的控制按钮是否显示的状态变量。比如: data() { return { list: [ { id: 1, name: ‘item 1’, showButton: false }, { id: 2, name: ‘it…

    Vue 2023年5月29日
    00
  • vue中用 async/await 来处理异步操作

    下面是关于 Vue 中如何使用 async/await 来处理异步操作的完整攻略,具体内容如下: 什么是 async/await async 和 await 是 ECMAScript 2017 中引入的新语法,是用于简化异步操作的一种方式,在 Vue 的开发中也经常用到。其中 async 是声明一个异步函数,await 则是用于等待一个异步函数返回结果。 V…

    Vue 2023年5月29日
    00
  • vue遍历对象中的数组取值示例

    下面我给您讲解一下“vue遍历对象中的数组取值”这个话题。 在vue.js中,我们经常需要遍历对象中的数组并取出其中的数据。这种需求很常见,而vue提供了非常方便的解决方案。 遍历数组取值的常见方法 例1:利用v-for指令遍历数组并输出数组内元素 下面是一个例子,假设我们的数据对象是这样的: var data = { list: [ {name: ‘小明’…

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