Vue打包路径配置过程

下面是 Vue 打包路径配置的完整攻略:

1. 理解打包路径

在 Vue 应用中,所有的资源文件都可以被打包(Bundle)到一起,如 JS、CSS、图片等等。在浏览器端使用时,需要访问打包后的文件,这些文件在浏览器中被认为是相对于 HTML 引用的路径来解析的。因此,我们需要对打包路径进行配置。打包路径分为两种情况:

  • 在开发环境下使用的路径
  • 在生产环境下使用的路径

这两者的打包路径需要分别进行配置。

2. 配置打包路径

2.1 配置开发环境下的打包路径

在开发环境中需要在 config/index.js 中配置 assetsPublicPath,找到以下代码:

module.exports = {
  dev: {
    assetsPublicPath: '/',
    // ...
  },
  // ...
}

assetsPublicPath 代表资源访问的 publicPath,这里我们把它设置为 /,即使用相对路径。如果需要使用绝对路径,可以设置为绝对路径,例如:

module.exports = {
  dev: {
    assetsPublicPath: 'http://yourdomain.com/',
    // ...
  },
  // ...
}

在设置了打包路径后,每次启动 npm run dev 启动应用时,资源路径将会被正确的处理。

2.2 配置生产环境下的打包路径

在生产环境中,打包路径需要在 webpack 配置文件中进行设置。可以通过 output.publicPath,或者在 HtmlWebpackPlugin 中的 publicPath 设置。

使用 output.publicPath 进行配置

可以在 config/prod.env.js 文件中添加环境变量:

module.exports = merge(prodEnv, {
  NODE_ENV: '"production"',
  PUBLIC_PATH: '"http://yourdomain.com/"' // 在这里添加
})

然后在 webpack.prod.conf.js 中使用这个环境变量:

const publicPath = process.env.PUBLIC_PATH // 从环境变量中获取打包路径

module.exports = merge(baseWebpackConfig, {
  output: {
    // ...
    publicPath: publicPath // 配置 publicPath
  },
  // ...
})

使用 HtmlWebpackPlugin 进行配置

webpack.prod.conf.js 中,找到 plugins 数组:

plugins: [
  // ...
  new HtmlWebpackPlugin({
    // ...
  }),
  // ...
],

HtmlWebpackPlugin 的配置项中添加 publicPath,例如:

plugins: [
  // ...
  new HtmlWebpackPlugin({
    filename: config.build.index,
    template: 'index.html',
    inject: true,
    minify: {
      // ...
    },
    // 在这里添加
    publicPath: 'http://yourdomain.com/'
  }),
  // ...
],

这样,发布生产环境的时候所有资源文件都使用了指定的公共路径。

3. 示例

3.1 示例1:使用相对路径

config/index.js 中,将 assetsPublicPath 修改为 './',这样配置完成后,在访问资源时就是相对路径。如:

<link rel="stylesheet" href="./static/css/app.css">
<script src="./static/js/manifest.js"></script>

这种方式可以基本适用于所有项目,而且常用于开发阶段。

3.2 示例2:使用 CDN

config/prod.env.js 中,添加 CDN 地址环境变量:

module.exports = merge(prodEnv, {
  NODE_ENV: '"production"',
  PUBLIC_PATH: '"http://cdn.yourdomain.com/"'
})

webpack.prod.conf.js 中,使用环境变量:

const publicPath = process.env.PUBLIC_PATH

module.exports = merge(baseWebpackConfig, {
  output: {
    publicPath: publicPath
  },
  // ...
})

这种方式使用 CDN 可以有效地加速资源的打包和加载速度,适合于需要快速加载大量资源的项目。需要注意的是,使用 CDN 时应该考虑到 CDN 更新带来的版本更新问题,在静态资源有更改时,需要主动更新 CDN。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue打包路径配置过程 - Python技术站

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

相关文章

  • .net任务调度框架FluentScheduler简介

    .NET任务调度框架FluentScheduler简介 简介 FluentScheduler是一款基于.NET的任务调度框架,可以提供简单易用的API,支持多种类型的任务,可以满足各种复杂的任务调度需求。使用FluentScheduler可以省去很多手动编写任务调度代码的工作,提高了编码效率。 安装 使用NuGet包管理器或在Visual Studio的包管…

    Flask 2023年5月16日
    00
  • Python的Flask框架中Flask-Admin库的简单入门指引

    下面是Python的Flask框架中Flask-Admin库的简单入门指引及两条示例说明: 1. 概述 Flask-Admin是一个基于Flask框架的后台管理界面插件,它简化了后台开发的过程,可以让你更加专注于业务逻辑的实现。使用Flask-Admin可以快速的构建出美观且功能强大的后台管理界面,同时提供了丰富的可自定义的组件和插件,极大增强了应用程序的可…

    Flask 2023年5月15日
    00
  • 基于SQLAlchemy实现操作MySQL并执行原生sql语句

    基于SQLAlchemy实现操作MySQL并执行原生sql语句的完整攻略如下: 安装SQLAlchemy 首先需要安装SQLAlchemy,可以通过pip命令安装: pip install sqlalchemy 连接到MySQL数据库 使用SQLAlchemy连接到MySQL数据库的代码如下: from sqlalchemy import create_en…

    Flask 2023年5月16日
    00
  • Python远程控制Windows服务器的方法详解

    作为网站作者,我很乐意为您讲解关于“Python远程控制Windows服务器的方法详解”的攻略。 Python远程控制Windows服务器的方法详解 1. 概述 在本教程中,我们将学习如何使用Python远程控制Windows服务器。我们将使用Python的内置模块subprocess和os来执行Windows命令并实现远程控制。 2. 准备工作 在开始之前…

    Flask 2023年5月16日
    00
  • 利用 Flask 动态展示 Pyecharts 图表数据方法小结

    以下是详细的攻略: 利用 Flask 动态展示 Pyecharts 图表数据方法小结 一、背景 在 Web 应用开发过程中,展示数据是一个非常重要的需求。而 Pyecharts 是一个非常强大且易于使用的数据可视化库,尤其是在 Python 中使用时更是如此。而 Flask 则是一款非常流行的 Python Web 框架,使用 Flask 动态展示 Pyec…

    Flask 2023年5月15日
    00
  • flask框架jinja2模板与模板继承实例分析

    下面是关于“flask框架jinja2模板与模板继承实例分析”的详细攻略。 1. 什么是jinja2模板? Jinja2是一个现代的、健壮的模板引擎,非常适用于Python Web应用程序。它使用简单,模板代码易于维护,并且可以灵活地支持大多数Web应用程序框架。 2. 什么是模板继承? 模板继承是Jinja2模板引擎的一个重要特性,可以帮助我们减少代码重复…

    Flask 2023年5月16日
    00
  • vue+flask实现视频合成功能(拖拽上传)

    下面是详细讲解“vue+flask实现视频合成功能(拖拽上传)”的完整攻略。 总体思路 这个项目的目的是实现用户可以通过拖拽上传多个视频文件,并将这些视频文件拼接成一个新的视频文件自定义保存,同时该视频文件可以在前端进行预览播放。 具体的实现方案是:前端使用vue框架构建视图,并使用dropzone.js插件实现文件的拖拽上传;后端使用flask框架运行py…

    Flask 2023年5月16日
    00
  • Flask模板引擎之Jinja2语法介绍

    Flask模板引擎之Jinja2语法介绍 在Flask中,Jinja2是为构建动态web应用程序提供的一个模板引擎,可以轻松地将应用程序与HTML(或其他文本)集成,并在呈现页面之前修改动态内容。 变量 在Jinja2中,使用双大括号来包含变量名,如 {{ variable_name }}。 <!DOCTYPE html> <html&gt…

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