gatsby-image에서svg 사용하기
6774 단어 Gatsby.jsJavaScripttech
문제.
같은 방식으로svg의 다른 확장자 (png,jpg) 의 그림을 얻을 수 있으며,gatsby-image로 표시하려고 해도 표시할 수 없습니다.
const Index = () => {
const images = useStaticQuery(graphql`
query {
file(relativePath: { eq: "like.svg" }) {
childImageSharp {
fluid {
...GatsbyImageSharpFluid
}
}
}
}
`);
return (
<div>
<Img fluid={images.file.childImageSharp.fluid} />
</div>
);
};
해결책
svg를 사용할 때childImageSharp가 아니라publicURL을 가져와 탭으로 표시합니다.
const Index = () => {
const image = useStaticQuery(graphql`
query {
file(relativePath: { eq: "like.svg" }) {
publicURL
}
}
`);
const { publicURL } = image.file;
console.log(publicURL); ///static/e152474a47557a24b12490f46840ebb7/like.svg
return (
<div>
<img src={publicURL} width="100px" height="100px" alt="like" />
</div>
);
};
잘 표현했어.너무 좋아요.😘
gatsby-image에서svg가 지원되지 않음
issue
gatsby-plugin-sharp/gatsby-image doesn't handle SVGs or GIFs. The fluid query (in your case) creates multiple images from 0px to 1060px (+ bigger sizes for retina). That wouldn't make sense with SVGs as they're vector files and don't need different sizes - they can scale indefinitely without loss of quality.
이런 댓글이 있습니다.
의역하면gatsby-plugen-sharp와gatsby-image는svg와gif를 처리하지 않습니다.flidquery는 0px에서 1060px의 여러 이미지를 생성하지만svg는 벡터 이미지이기 때문에 필요없습니다.
그렇습니다.
즉svg 형식을 받아들이지 않는query를 던져서null이 돌아왔다는 것이다.
원래gatsby-image,gatsby-plugen-shop은
원래 분위기 속에서 이 라이브러리들을 사용한 것 같아서 선뜻 조사해봤어요
gatsby-plugin-sharp
이것은 Sharp 이미지 처리 라이브러리를 바탕으로 이미지 처리 기능을 제공하는 플러그인입니다.다른 Gatsby plugens에 이용된 수준 낮은 조수인 것 같다.
이른바 Sharp
큰 이미지를 다양한 크기의 JPEG, PNG, 웹P 이미지로 변환하는 프로그램 라이브러리인 것 같다.
gatsby-image
Gatsby의 GraphiQL queries를 사용하여 그림을 불러오는 최적화된 라이브러리입니다.그림 변환은gatsby-plugen-shap을 사용합니다.
감상
각 라이브러리가 어떤 것인지 처음부터 잘 읽으면 피할 수 있는 오류다.
그런데 처음부터 도서관의 개요를 읽는 게 귀찮았어요.😩
참고 문헌
Reference
이 문제에 관하여(gatsby-image에서svg 사용하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tt_/articles/2f49db71355a9615c9c4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)