--- import path from 'path' interface Props { id?: string src: string class?: string alt?: string position?: string basePath?: string } import { Image } from 'astro:assets' import { url } from '../../utils/url-utils' const { id, src, alt, position = 'center', basePath = '/' } = Astro.props const className = Astro.props.class const isLocal = !( src.startsWith('/') || src.startsWith('http') || src.startsWith('https') || src.startsWith('data:') ) const isPublic = src.startsWith('/') // TODO temporary workaround for images dynamic import // https://github.com/withastro/astro/issues/3373 let img if (isLocal) { const files = import.meta.glob('../../**', { import: 'default', }) let normalizedPath = path .normalize(path.join('../../', basePath, src)) .replace(/\\/g, '/') img = await files[normalizedPath]() if (!img) { console.error(`No image found for path ${normalizedPath}`) } } const imageClass = 'w-full h-full object-cover' const imageStyle = `object-position: ${position}` ---
{isLocal && img && {alt} {!isLocal && {alt}