vite css图片路径问题

目录结构:
在这里插入图片描述
正确background-image url写法:
在这里插入图片描述
错误:
在这里插入图片描述
错误写法导致的错误:
在这里插入图片描述

### 解决 Vue 和 Vite 项目中图片无法被打包的问题 在处理 Vue 和 Vite 项目的打包过程中,如果遇到图片路径错误导致浏览器找不到资源的情况,通常是因为构建工具未能正确解析静态资源的相对路径或绝对路径。 #### 配置 `vite.config.ts` 为了确保图片能够被正确加载,可以在 `vite.config.ts` 中调整别名设置以及公共基础 URL: ```typescript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': '/src', // 设置 @ 别名为 src 文件夹 }, }, base: './' // 如果部署在同一级目录下,则保持默认;如果是子目录,请指定相应的路径 }) ``` 当使用相对导入方式引入图像时,Vite 可能会将其视为模块依赖而非静态资产。因此建议采用如下方法之一来引用本地图片[^1]。 #### 正确引用图片的方式 ##### 方法一:通过 import 导入 对于组件内部使用的图片,推荐利用 ES6 的 `import` 语句提前获取其最终地址: ```javascript <script setup> import logoUrl from '@/assets/logo.png'; </script> <template> <img :src="logoUrl" alt="Logo"> </template> ``` 这种方法可以让 Webpack 或者 Rollup 插件自动处理这些文件,并返回正确的 URL 给模板使用。 ##### 方法二:动态绑定 style 属性中的 background-image 如果你希望以 CSS 背景图的形式展示图片,可以通过计算属性或者函数形式传参给样式对象: ```html <div class="example" :style="{ backgroundImage: `url(${require('@/path/to/image.jpg')})` }"></div> ``` 注意这里的 `require()` 函数调用是为了让 bundler 知道这是一个需要特别对待的请求而不是普通的字符串字面量。 ##### 方法三:将图片放置于 public 文件夹内 另一种简单的方法就是把所有公共资源放在项目的 `public/` 目录里边,这样可以直接按照相对于根路径访问它们而无需经过任何编译过程: ```html <img src="/images/example.png"/> ``` 只要保证实际发布后的服务器结构与此一致即可正常工作。 #### 修改 nginx 配置 (可选) 如果有条件修改 Nginx 配置的话,也可以考虑增加 location 模块映射 `/static` 请求至对应的实际位置,从而简化前端代码里的资源定位逻辑[^3]: ```nginx location /static/ { root /var/www/html/dist; } ``` 以上措施应该可以帮助解决大部分情况下由于路径不当引起的图片丢失现象。当然具体实施还需视个人应用场景灵活变通。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值