Vue无法解析文件踩坑

在Vue项目中使用bgi设置背景图,结果无法解析文件

直接用绝对路径也无法解析

vue.config.js

configureWebpack: {
  name: name,
    resolve: {
    alias: {
      '@': resolve('src')
    }
  },

@符号

在Web开发中,特别是在使用Vue.js和它的构建工具Vue-cli时,@ 符号通常用作一个别名(alias),它指向项目的 src 目录。这是Vue-cli默认设置的一部分,用于简化模块导入和路径引用。

例如,假设有一个位于 src/assets/images 目录下的图片文件。在Vue组件的样式中,这样引用它:

background-image: url("@/assets/images/login-background.png");

这里,@ 会被构建工具Webpack解析为 src 目录的路径,因此实际引用的路径就是 src/assets/images/login-background.png。

使用别名的好处在于,如果你的项目结构发生变化(重命名或移动 src 目录),只需要更新构建配置中的别名设置,而不需要在项目的每个文件中手动更新路径。

然后会报错,还是路径不对的问题 vue2.6及以上版本,用的是webpack4.0就会导致这种错误,需要换一种写法:

background-image: url("~@/assets/images/login-background.png");

~也是一个别名,用于指向node_modules目录

这样Webpack才知道从哪里导入文件

以下是Vue-cli用来导出内部Webpack配置的一个脚本 其中并没有看到该别名

可能得看内部的webpack配置?能力有限,暂时知道怎么用就好了。

webpack.config.js

// this file is for cases where we need to access the
// webpack config as a file when using CLI commands.

let service = process.VUE_CLI_SERVICE

if (!service || process.env.VUE_CLI_API_MODE) {
  const Service = require('./lib/Service')
  service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd())
  service.init(process.env.VUE_CLI_MODE || process.env.NODE_ENV)
}

module.exports = service.resolveWebpackConfig()

参考文献

vue项目使用background-image设置背景图报错的解决_vue background-image: url(-CSDN博客

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值