Загрузка локального изображения с помощью Гэтсби

Я пытаюсь создать компонент «аватар», используя Gatsby с машинописным текстом. Этот компонент должен использовать локальный образ. Мой компонент выглядит как

const avatar: React.FC<Props> = ({imageUrl, title}: Props) => (
    <div className="avatar" title={title} style={{backgroundImage: `url(${imageUrl})`}} />
);

И я звоню с

<Avatar title={"Avatar"} imageUrl={"../avatar/elements.png"} />

Путь к файлу правильный, но он не отображается. Что я делаю неправильно?

P.S. Есть ли способ заставить изображение пройти через gatsby-image для оптимизации?


person JakobAttk    schedule 23.05.2020    source источник
comment
Получить местные изображения на Гэтсби сложно. У меня много проблем с Гэтсби. Вам нужно использовать graphQL для загрузки изображения в ваш компонент с помощью запроса, а затем использовать это имя файла вместо жестко закодированной строки. это сложно, взгляните на gatsbyjs.org/docs/working-with-images < / а>   -  person Ben Butterworth    schedule 23.05.2020
comment
Если вы хотите обрабатывать изображения с помощью Sharp для gatsby-image, вам нужно сначала вставить локальные изображения в схему GraphQL. Вы захотите использовать для этого gatsby-source-filesystem. Как предлагает @BenB, Работа с изображениями в Gatsby - хорошее место начать.   -  person Robin Métral    schedule 23.05.2020
comment
Я думаю, что это дубликат вопроса, связанный с @coreyward   -  person Derek Nguyen    schedule 24.05.2020