5 html typescript vuejs3 nuxtjs3
我想动态创建 3 张卡片。每张卡都有一个图像,我想为每张卡动态设置一个路径,但我无法使用波浪号,~因为波浪号不会转换为绝对路径:
<img
:src="'~/assets/images/how-to-use/image1.jpg'"
:alt="part.title"
/>
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
GET http://localhost:3000/~/assets/images/how-to-use/image2.jpg 404 (Page not found: /~/assets/images/how-to-use/image1.jpg)
Run Code Online (Sandbox Code Playgroud)
我设置buildAssetsDir为example但我什至不能这样做:
GET http://localhost:3000/~/assets/images/how-to-use/image2.jpg 404 (Page not found: /~/assets/images/how-to-use/image1.jpg)
Run Code Online (Sandbox Code Playgroud)
该代码在构建时间后将不起作用。但为什么?
如果你使用vite. 我发现这样:
<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>
Run Code Online (Sandbox Code Playgroud)
您可以将您的imageName(不要忘记扩展名)传递给此函数并获取绝对路径。
即使在构建之后,这种方式仍然有效。
你不能使用这个:
<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>
Run Code Online (Sandbox Code Playgroud)
但为什么?
因为nuxt3也会改变assets文件名,所以这个路径不正确
require不适用于 viteimport image1Name from '../assets/images/how-to-use/image1.jpg'和使用。image1Name| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |