NodeJS

[React] React-helmet title 또는 description 정보가 적용되지 않을 때

React Helmet을 사용하여 각 페이지 컴포넌트별로 메타 데이터를 설정하는 경우가 많습니다.

사이트의 제목이나 설명을 지정할 수 있는 meta 태그title이나 description를 예를 들었을 때 이 두 항목은 페이지 마다 다른 값을 필요로 할텐데 React를 사용할 때에는 컴포넌트에 head 태그를 직접 지정하기는 어렵습니다.

이 때 사용하는 것이 React Helmet인데 설치 방법도 설정 방법도 매우 간단합니다.

$ npm install --save react-helmet

NPM으로 react-helmet 라이브러리를 설치하면 다음과 같이 <Helmet> 컴포넌트를 사용하여 head와 같이 메타태그를 지정할 수 있습니다.

const Home = () => {
    return (
        <div>
            <Helmet>
                <title>사이트 제목입니다.</title>
                <meta name="description" content="사이트 설명입니다."/>
            </Helmet>
        </div>
    );
};

export default Home;

여기까지는 순조롭지만, 막상 서버를 실행하면 해당 페이지에 잘못된 title 또는 description 값이 나타나며 적용되지 않는 것을 확인할 수 있습니다. Global 컴포넌트에 미리 지정된 값이 우선 적용되어버리거나 검색 결과에 원하는 결과가 나타나지 않게 됩니다.

이를 해결하는 방법은 간단합니다. 표시할 메타태그 속성에 다음 속성을 추가해줍니다.

data-react-helmet="true"

위 예시 코드에서 적용한 모습은 아래와 같습니다.

const Home = () => {
    return (
        <div>
            <Helmet>
                <title>사이트 제목입니다.</title>
                <meta name="description" content="사이트 설명입니다." data-react-helmet="true"/>
            </Helmet>
        </div>
    );
};

export default Home;

또 하나의 유의사항은, 일반적으로는 사용하지 않아도 되었던 클로징 태그(/)를 꼭 넣어주어야 합니다. <meta title=""...> 보다는 <meta title="".../>를 권장합니다.

참고자료

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

Recent Posts

[안드로이드] INSTALL_FAILED_INSUFFICIENT_STORAGE 해결

INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…

3개월 ago

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

5개월 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

5개월 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

5개월 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

5개월 ago

윈도우 11 설치 시 Microsoft 계정 로그인 없이 로컬 계정 만들기

언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…

10개월 ago