vue本地能够访问图片,打包项目之后图片无法访问

这篇具有很好参考价值的文章主要介绍了vue本地能够访问图片,打包项目之后图片无法访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

//template中
<img :src="boxHerf" />

//js
let boxHerf = ref('/src/assets/images/contain.svg')

vue本地能够访问图片,打包项目之后图片无法访问

上述写法本地能够正常访问图片,但是打包之后无法正常访问,将 boxHerf 换成下列写法即可解决

let boxHerf = new URL('/src/assets/images/contain.svg', import.meta.url).href;

注意:new URL(url,import.meta.url) 中的参数 url ,不能如下面定义变量拼接

const getPath = (url) => {
  let path = 'src/assets';
  return new URL(`${path}${url}`, import.meta.url).href;
};

上述开发没问题,但是打包会报错,不支持import.meta.url

new URL()

创建一个新 URL 对象的语法:new URL(url, [base])

  • url —— 完整的 URL,或者仅路径(如果设置了 base),

  • base —— 可选的 base URL:如果设置了此参数,且参数 url 只有路径,则会根据这个 base 生成 URL。

'/src/assets/images/contain.svg'是相对路径,而import.meta.url 是 base url (根链接)。

import.meta

import.meta 对象包含关于当前模块的信息。

它的内容取决于其所在的环境。在浏览器环境中,它包含当前脚本的 URL,或者如果它是在 HTML 中的话,则包含当前页面的 URL。

因此可以把import.meta 打印出来:

console.log("import.meta.url" ,import.meta)

//import.meta.url

vue本地能够访问图片,打包项目之后图片无法访问

es6使用require引入图片

1、直接写成静态的是没有问题的

let imgUrl = require('../images/001.png');

2、如果你想动态的引入图片,就会报错

let ImgSrc = "../images/001.png";
let img = require(ImgSrc)

因为require是打包工具所需要的标识,你写成运行时通过变量定义,是无法获取到,没办法打包。

3、require()写入的必须是path

let imgSrc = "001.png";
require("../../asset/images/" + imgSrc);
let imgName = "001";
require(`../../asset/images/${imgName}.png`);

注:require是webpack的语法,vite无法使用文章来源地址https://www.toymoban.com/news/detail-736220.html

到了这里,关于vue本地能够访问图片,打包项目之后图片无法访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在vmware安装gitlab,启动gitlab后,在本地浏览器访问服务器之后显示无法访问此网站

    事情是这样的,准备学习jenkins来着,于是安装了vmware,在vmware上安装了服务器,并且在服务器上安装了gitlab,启动gitlab之后,在浏览器输入地址居然无法访问。显示如下:  反正折腾了好一阵子,输入命令 gitlab-ctl status和free -m 确认gitlab相关的服务都启动了以及内存也还有剩

    2024年02月16日
    浏览(18)
  • vue 全局引用vant 项目打包之后vant样式不生效

    描述: vue全局引用vant-UI框架,本地开发时没有问题;项目打包部署之后,vant样式部分失效。 查看控制面板,定位到vant样式表,发现样式表没有全部加载。 解决: 下载 vant-ui-style.css 样式表,本地引用。 vant-ui-style.css  放在 public 文件夹下,在 index.html 中调用 注意: (1)若

    2024年02月11日
    浏览(28)
  • vue 项目打包之后进行修改配置后端 IP 地址、端口等信息方法

            用 vue-cli 构建的项目通常是采用前后端分离的开发模式,也就是前端与后台完全分离,此时就需要将后台接口地址打包进项目中,但是,我们只是改个接口地址也要重新打包那就太麻烦了。怎么解决呢?方法如下,本文推荐俩种方式。 方式1:通过创建 js 文件进

    2024年02月11日
    浏览(30)
  • 前端项目配置 Dockerfile 打包后镜像部署无法访问

    构建镜像 启动镜像容器 命令行访问: 浏览器访问: 该网页无法正常运作localhost 未发送任何数据。 ERR_EMPTY_RESPONSE 知识点: localhost:3001: 仅允许本地主机(即 Docker 容器内部)访问。 0.0.0.0:3001: 允许任何主机(包括容器外部的主机)通过该地址访问服务。

    2024年01月18日
    浏览(8)
  • 【Vue3】手机访问vue项目 || 手机无法访问vue项目 || 手机无法访问vue项目解决方法

    手机 端访问电脑端开发的项目。 手机与电脑连接同一个WiFi(或手机开热点给电脑连),保证手机与电脑在同一局域网。 找到 vue3 的配置文件 - package.json (我这里用的是vite+vue3) 找到dev配置项,输入 –host 0.0.0.0 ,代码如下 图片演示 npm run dev 运行项目,访问Network地址 ,如下图

    2024年02月16日
    浏览(12)
  • vue项目打包时因为图片问题报错

    执行 npm run build 命令打包项目时报错,看起来是图片的问题: package.json 里面 image-webpack-loader 的版本是 ^7.0.1 解决方案: 1、先卸载 npm uninstall image-webpack-loader 2、用 cnpm 重新安装 cnpm install image-webpack-loader --save-dev 执行上面两条命令后 image-webpack-loader 的版本是 ^8.1.0 ,然后再执

    2024年04月27日
    浏览(6)
  • vue项目本地开启https访问模式

    在实际开发中,我们除了以http的形式进行页面访问,还会以https形式进行页面访问,但是根据vue-cli的版本不同,配置方式也有所差异,以下分别从vue-cli3.x、vue-cli4.x和vue-cli2.x构建的项目分别进行配置开启https: 1、 vue-cli3.x和vue-cli4.x 使用vue脚手架3.x和vue-cli4.x搭建的项目,配置

    2024年03月16日
    浏览(20)
  • vue项目打包,解决静态资源无法加载和路由加载无效(404)问题

    打包后的项目静态资源无法使用,导致页面空白 静态资源无法使用,那就说明项目打包后,图片和其他静态资源文件相对路径不对,此时找到config里面的index.js,在build模块下加入 assetsPublicPath: \\\'./\\\',  如下图所示,或者是在打包完的dist文件夹中找里面的.js文件,将其中的\\\'/\\\'替

    2024年02月08日
    浏览(9)
  • VUE搭建项目,配置本地IP地址其他人可访问项目

    1.首先找到config文件夹目录下的 index.js文件 2.然后找到package.json配置文件 3.配置一下build文件夹下面的webpack.dev.conf.js文件 4.最后配置一下启动项目 通过localhost 和本地ip地址访问 同样还是在build文件夹下面的webpack.dev.conf.js文件找到 5.最后看下一效果

    2024年02月12日
    浏览(13)
  • Electron-builder打包vue项目后,背景图片不加载的问题

    打包后的项目启动之后,背景图片没有成功加载,只有一片空白。此时打开调试工具可以看到,electron自动把图片路径加上了/img/  我们这时打开打包后的dist_electron文件夹,打开bundledimg目录,  这就是上面报错的路径。 对于背景图片,不要使用如下 background:url(\\\'..\\\') 的形式,这样写

    2024年02月09日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包