I am using a react carousel from https://www.material-tailwind.com/docs/react/carousel
The carousel renders with the stock images but it is not rendering when I use my local images, or even images from another other source hosted online. Why is this? How can I make it work for local images?
I’ve tried to change:
src="https://images.unsplash.com/photo-1493246507139-91e8fad9978e?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
to: src="./images/image1"
&
src="../images/image1"
and I’ve even tried to import the image using both paths incase I was incorrect and it won’t render.
Full code below:
import { Carousel, Typography, Button } from "@material-tailwind/react";
export function CarouselWithContent() {
return (
<Carousel className="rounded-xl">
<div className="relative h-full w-full">
<img
src="https://images.unsplash.com/photo-1497436072909-60f360e1d4b1?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2560&q=80"
alt="image 1"
className="h-full w-full object-cover"
/>
<div className="absolute inset-0 grid h-full w-full place-items-center bg-black/75">
<div className="w-3/4 text-center md:w-2/4">
<Typography
variant="h1"
color="white"
className="mb-4 text-3xl md:text-4xl lg:text-5xl"
>
The Beauty of Nature
</Typography>
<Typography
variant="lead"
color="white"
className="mb-12 opacity-80"
>
It is not so much for its beauty that the forest makes a claim
upon men's hearts, as for that subtle something, that quality
of air that emanation from old trees, that so wonderfully changes
and renews a weary spirit.
</Typography>
<div className="flex justify-center gap-2">
<Button size="lg" color="white">
Explore
</Button>
<Button size="lg" color="white" variant="text">
Gallery
</Button>
</div>
</div>
</div>
</div>
<div className="relative h-full w-full">
<img
src="https://images.unsplash.com/photo-1493246507139-91e8fad9978e?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2940&q=80"
alt="image 2"
className="h-full w-full object-cover"
/>
<div className="absolute inset-0 grid h-full w-full items-center bg-black/75">
<div className="w-3/4 pl-12 md:w-2/4 md:pl-20 lg:pl-32">
<Typography
variant="h1"
color="white"
className="mb-4 text-3xl md:text-4xl lg:text-5xl"
>
The Beauty of Nature
</Typography>
<Typography
variant="lead"
color="white"
className="mb-12 opacity-80"
>
It is not so much for its beauty that the forest makes a claim
upon men's hearts, as for that subtle something, that quality
of air that emanation from old trees, that so wonderfully changes
and renews a weary spirit.
</Typography>
<div className="flex gap-2">
<Button size="lg" color="white">
Explore
</Button>
<Button size="lg" color="white" variant="text">
Gallery
</Button>
</div>
</div>
</div>
</div>
<div className="relative h-full w-full">
<img
src="https://images.unsplash.com/photo-1518623489648-a173ef7824f3?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2762&q=80"
alt="image 3"
className="h-full w-full object-cover"
/>
<div className="absolute inset-0 grid h-full w-full items-end bg-black/75">
<div className="w-3/4 pl-12 pb-12 md:w-2/4 md:pl-20 md:pb-20 lg:pl-32 lg:pb-32">
<Typography
variant="h1"
color="white"
className="mb-4 text-3xl md:text-4xl lg:text-5xl"
>
The Beauty of Nature
</Typography>
<Typography
variant="lead"
color="white"
className="mb-12 opacity-80"
>
It is not so much for its beauty that the forest makes a claim
upon men's hearts, as for that subtle something, that quality
of air that emanation from old trees, that so wonderfully changes
and renews a weary spirit.
</Typography>
<div className="flex gap-2">
<Button size="lg" color="white">
Explore
</Button>
<Button size="lg" color="white" variant="text">
Gallery
</Button>
</div>
</div>
</div>
</div>
</Carousel>
);
}
2
Answers
I figured it out. I just had to move my carousel component out of a component folder to get this to work. For whatever reason, no path would work from an images folder and a component folder I had to have one or the other. These kinds of things only seem to happen in Create-react-app which I won't be using anymore. Thanks
You can store the images in
public
folder ( when you create a react app usingVite
then it creates a folder called public folder in the project). And then you can just use that path in thesrc
attribute of the<image/>
as shown below.// CarouselWithContent.jsx file