vue-cli webpack模板项目搭建及打包时路径问题的解决方法

yizhihongxing

Vue-cli webpack模板项目搭建及打包时路径问题的解决方法

Vue-cli提供了Webpack的模板项目,使用这个模板项目可以快速地搭建一个Vue项目,并且提供了大量的开发工具和插件,方便我们进行开发、调试和打包等操作。但是当我们要在打包时把项目部署到服务器上时,会遇到一些路径问题。

1. 安装Vue-cli

首先,我们需要安装Vue-cli,打开终端(命令行),输入以下命令:

npm install -g vue-cli

2. 创建Vue项目

创建Vue项目,输入以下命令:

vue init webpack my-project

其中,my-project是你要创建的项目名称。

在创建时,可以选择默认设置,也可以根据自己的需求进行选择,例如选择ESLint、Vuex等。

? Generate project in current directory? Yes
? Project name my-project
? Project description A Vue.js project
? Author your name
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Set up unit tests No
? Setup e2e tests with Nightwatch? No
? Should we run `npm install` for you after the project has been created? (recom
mended) npm

3. 安装依赖

进入项目目录,安装依赖:

cd my-project
npm install

4. 配置路径

4.1 修改config/index.js

config/index.js文件中,找到如下代码:

build: {
  // Paths
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
}

assetsPublicPath的值改为./,如下所示:

build: {
  // Paths
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: './',
}

4.2 配置一些需要引用的资源路径

我们可以在我们的Vue项目中,通过像下面这样的方式去引用我们的资源:

<img src="/static/logo.png">

这里的/static/logo.png的前面的斜杠代表根目录,会在构建时替换为assetsPublicPath中的内容。

那么如果我们有一些需要引用的资源路径,需要在assetsPublicPath后面添加一些内容时,可以先在config/index.js中进行配置,如:

build: {
  // Paths
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: './',
  // 添加一些需要引用的资源路径
  staticPath: 'http://www.example.com/static/',
}

然后就可以在我们的Vue项目中,通过像下面这样的方式去引用我们的资源:

<img src="${assets.staticPath}/logo.png">

5. 打包项目

打包项目,输入以下命令:

npm run build

打包成功后,会生成一个dist目录,里面包含了我们打包好的文件。

6. 示例说明

6.1 图片路径问题的解决

当我们在Vue项目中引用图片时,如果不加任何路径信息,那么Webpack将会根据模块规则自动配置图片路径,将其缩进到dist目录下。

<img src="./assets/logo.png">

在打包后生成的文件中,会自动修改路径:

<img src="/static/img/logo.0031d14.png">

这样就可以正确地引用了。

6.2 CSS文件中引用图片问题的解决

在CSS文件中引用图片时,同样会自动缩进到dist目录下,但是需注意,需要在路径前加上~符号,如:

.my-style {
  background-image: url(~assets/images/my-background.png);
}

在打包后生成的文件中,会自动修改路径:

.my-style {
  background-image: url(/static/img/my-background.87c6ca7.png);
}

以上两个示例说明了在Vue-cli webpack模板项目搭建及打包时路径问题的解决方法,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-cli webpack模板项目搭建及打包时路径问题的解决方法 - Python技术站

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

相关文章

  • 详解Vue This$Store总结

    详解Vue This.$Store总结 Vue.js是一款轻量级、高效的JavaScript框架,它本身没有提供全局状态管理机制。但是,vue系列的开发者们为我们写了一个插件——VueX,用来解决这个问题。本文将详细讲解Vue This.$Store总结。 VueX是什么? VueX是一个用于state管理的应用程序状态管理模式。它使用了集中式存储管理数据,…

    Vue 2023年5月28日
    00
  • Vue实现动态响应数据变化

    实现动态响应数据变化是 Vue.js 的核心特性之一,它使得数据变化时能够自动更新视图。以下是 Vue 实现动态响应数据变化的详细攻略。 1. Vue 实例的响应式数据 在 Vue 实例中声明的每个属性都是响应式的,也就是说,当数据发生变化时,视图会自动更新。例如,在以下 Vue 代码中,当 message 数据发生变化时,页面中绑定的 {{ message…

    Vue 2023年5月28日
    00
  • 一篇超详细的Vue-Router手把手教程

    一篇超详细的Vue-Router手把手教程 简介 Vue-Router是Vue.js官方提供的用于路由管理的插件,可以帮助我们快速地构建单页应用。本文将从基础的使用开始,逐步深入解析Vue-Router的特性和使用方法,让你轻松掌握Vue-Router的使用。 基本使用 安装 使用npm安装Vue-Router: npm install vue-router…

    Vue 2023年5月27日
    00
  • vue实现自定义公共组件及提取公共的方法

    下面我为您详细讲解“Vue 实现自定义公共组件及提取公共的方法”的完整攻略。 1. 自定义公共组件 1.1 创建与引入组件 Vue 框架提供了组件化的机制,用户可以通过自定义组件的方式进行开发。下面是一个简单的自定义组件的例子,我们可以创建一个 HelloWorld 组件: <template> <div> <h1>{{ …

    Vue 2023年5月28日
    00
  • vue props default Array或是Object的正确写法说明

    对于“vue props default Array或是Object的正确写法说明”,主要包括以下内容: 使用函数返回值作为默认值 使用工厂函数生成默认值 示例一:使用函数返回值作为默认值 对于Array类型的props,可以使用函数返回默认值。以下是一个示例: props: { list: { type: Array, default: function(…

    Vue 2023年5月28日
    00
  • Vue导出页面为PDF格式的实现思路

    下面我将为您详细讲解Vue导出页面为PDF格式的实现思路。实现思路主要基于PDF.js和html2canvas两个工具组合使用。 实现思路 引入PDF.js和html2canvas 在public文件夹下创建一个pdfjs文件夹,将下载好的PDF.js的代码放到该文件夹下。 在public文件夹中的index.html文件中引入pdfjs文件夹中的pdf.j…

    Vue 2023年5月29日
    00
  • vue使用axios上传文件(FormData)的方法

    下面是详细的Vue使用axios上传文件(FormData)的方法攻略: 1. 安装axios库 首先需要在Vue项目中安装axios库,可以通过npm命令进行安装: npm install axios –save 2. 引入axios库 在Vue的组件中引入axios库的方法如下: import axios from ‘axios’ 3. 创建FormD…

    Vue 2023年5月28日
    00
  • vue如何截取字符串

    当在Vue中需要对字符串进行截取时,可以使用Vue提供的过滤器和JavaScript原生方法来完成。以下是实现的方法: 1. 使用Vue过滤器 Vue提供了可以当作全局过滤器使用的方法: Vue.filter(‘substring’, function(value, length) { if (!value) return ”; if (value.len…

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