时间:2021-05-26
场景
吾辈在使用 Vuetify 时突然遇到的,明明 img 标签就可以使用相对路径获取到图片,而 Veutify 的组件 v-img 却不能使用。
如下面 3 种加载图片的方式
<!-- 正常加载 --><v-img :src="require('../../assets/logo.png')" /><!-- 无法加载 --><v-img src="../../assets/logo.png" /><!-- 正常加载 --><img src="../../assets/logo.png" />吾辈在 segmentfault 上的提问原因
是的,居然必须用 require() 引入图片才能生效,那为什么 img 标签可以直接使用相对路径呢?这和 vue-loader 资源路径处理 有关系。
官方明确指出会将所有资源路径作为模块依赖,也就是后台 vue-loader 帮我们转换成 require() 的形式了。
解决方案
vue cli 3
vue cli 3 的配置项 API 发生了改变,由 transformToRequire 改为 transformAssetUrls,而且配置方式也不再是直接修改 webpack 配置文件,而是修改 vue.config.js 这个经过包装后的文件。现在,最新的配置方式如下
module.exports = { chainWebpack: config => { config.module .rule('vue') .use('vue-loader') .loader('vue-loader') .tap(options => { return { ...options, //修复静态资源引用的问题 vue cli 2 => vue cli 3 升级之后配置项由 transformToRequire 改为 transformAssetUrls transformAssetUrls: { video: ['src', 'poster'], source: 'src', img: 'src', image: 'xlink:href', // 在这里添加需要使用静态资源的自定义元素 'a-avatar': 'src', }, } }) },}具体参考vue cli 2
那么,Veutify 组件中的 src 不能使用相对路径的原因就很明确了。因为 vue-loader 并不知道我们要把 v-img 的 src 属性转换成 require() 依赖。我们找到 vue-loader 配置处,在 options.transformToRequire 中加上 v-img 即可
// vuetify 框架的 src 标签也需要自动转换为 require'v-img': 'src'吾辈的配置文件在 build > vue-loader.conf.js
'use strict'const utils = require('./utils')const config = require('../config')const isProduction = process.env.NODE_ENV === 'production'const sourceMapEnabled = isProduction ? config.build.productionSourceMap : config.dev.cssSourceMapmodule.exports = { loaders: utils.cssLoaders({ sourceMap: sourceMapEnabled, extract: isProduction, }), cssSourceMap: sourceMapEnabled, cacheBusting: config.dev.cacheBusting, transformToRequire: { video: ['src', 'poster'], source: 'src', img: 'src', image: 'xlink:href', 'v-img': 'src', },}vue-loader 官方文档参考然后重启 npm run dev 刷新一下就行啦
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
vue中嵌套iframe,将要嵌套的文件放在static下面。src可以使用相对路径,也可使用服务器根路径http:localhost:8088/…补充知识:关
今日遇到一个问题:springboot需要获取到一个自定义名称文件夹下的静态资源(图片等),并且文件夹的路径不在classPath下面,而是一个相对路径。一开始
问题描述:要在/jsp/index.jsp文件使用图片,如何计算相对路径?经过Servlet,struts转发后又如何计算相对路径?目录结构:应用名字:Demo
php算法之实现相对路径的实例算出相对路径(相同的目录可以忽略用../或者./表示)实现代码:classRelatively{privatefunction__
求两个目录的相对路径,不限制路径深度复制代码代码如下:/***输出$b相对于$a的相对路径($a)*不限限制路径深度,没有做什么优化,只是实现功能*/funct