我想动态创建3张卡.每张卡片都有一个图像,我想为每一张卡片动态设置一条路径,但我不能使用代字号~,因为代字号不会转换为绝对路径:

<img
        :src="'~/assets/images/how-to-use/image1.jpg'"
        :alt="part.title"
      />

我收到了这个错误:

GET http://localhost:3000/~/assets/images/how-to-use/image2.jpg 404 (Page not found: /~/assets/images/how-to-use/image1.jpg)

我把我的buildAssetsDir设置为example,但我甚至不能这么做:

<img
        :src="'example/assets/images/how-to-use/image1.jpg'"
        :alt="part.title"
      />

此代码在构建时间过后将不起作用.但是为什么呢?

推荐答案

如果你使用维生素E. 我发现了这样的方式:

<script>
const glob = import.meta.glob("~/assets/images/how-to-use/*", {
  eager: true,
});

const getImageAbsolutePath = (imageName: string): string => {
  return glob[`/assets/images/how-to-use/${imageName}`]["default"];
};
</script>

您可以将您的imageName(不要忘记扩展名)传递给该函数并获得绝对路径.

即使在构建之后,这种方法也能起作用.

您不能使用以下命令:

<img
  :src="'example/assets/images/how-to-use/image1.jpg'"
  :alt="part.title"
/>

但是为什么呢?

因为nuxt3也会更改assets资源 文件名,所以该路径不正确

重要说明

  1. require不适用于VITE
  2. 您也可以在模板中使用import image1Name from '../assets/images/how-to-use/image1.jpg'image1Name.
  3. 您始终可以将图像添加到公用文件夹 these ways work after the build

Html相关问答推荐

新用户登录时无法从cookie中获取当前用户信息

如何将值从Google Sheets侧边栏中的表单中的输入传递到Google Sheets单元格中使用Textile()

试图让三个Divs与下面的另外三个对齐

为什么我的搜索栏会出现在WONG位置?

div居中碰撞问题

(HTML框架标签)点击后目标框架将不再工作

如何防止弹性项目溢出容器?

在 WooCommerce 存档产品类别描述上添加阅读更多/阅读更少按钮

UL 的行为就像它不属于任何类别

如果使用复选框属性更改,如何防止事件更改?

将箭头图标添加到工具提示包装器时遇到问题

即使必填字段为空,HTML 表单也已成功提交

Github上部署需要花费几小时时间:等待github pages部署批准

CSS Grid 布局:1 大图和 3 小图

主要元素内滚动时,固定导航栏会消失

表格中每 4 行条纹一次

如何制作一个空的网格模板行来填充剩余空间?

如何使用 CSS 和 HTML 将文本放入图像中?

如何在没有容器的情况下沿基线将 div 中的元素居中?

禁用的 Select 标签没有在 chrome 上的 css 中指定的 colored颜色