>  기사  >  웹 프론트엔드  >  vue의 svg가 표시되지 않습니다

vue의 svg가 표시되지 않습니다

WBOY
WBOY원래의
2023-05-11 11:42:374151검색

프론트엔드 개발에서 Vue 컴포넌트 개발은 SVG 아이콘을 사용하는 경우가 많은데, 가끔 애플리케이션에서 SVG를 사용할 때 표시되지 않는 문제가 발생할 수 있습니다.

이러한 문제의 원인은 다양합니다. 아래에서는 가능한 문제와 해결 방법을 분석합니다.

문제 1: SVG 경로 오류

먼저 경로가 잘못된지 확인하세요. 잘못된 파일 경로로 인해 SVG 아이콘이 올바르게 로드되지 않는 경우가 있습니다. 이 경우 개발자 도구나 콘솔을 확인하면 브라우저의 404 오류 메시지를 볼 수 있습니다.

SVG 경로 오류를 발견하면 경로를 수정하거나 절대 경로를 사용하여 문제를 해결할 수 있습니다.

문제 2: SVG 크기 오류

SVG 아이콘 크기를 0으로 설정하거나 SVG 아이콘을 숨김으로 설정하면 SVG 아이콘이 표시되지 않습니다.

따라서 SVG 아이콘 크기가 적절하고 올바르게 표시되도록 하려면 다음 코드를 통해 SVG 아이콘 기본 크기를 설정할 수 있습니다.

svg {
  width: 1em;
  height: 1em;
}

문제 3: SVG 채우기 색상이 잘못되었습니다

때때로 SVG 아이콘을 사용할 때 응용 프로그램에서 SVG 아이콘이 표시되지만 채우기 색상이 잘못되었음을 알 수 있습니다. 이 문제는 일반적으로 SVG 기본 색상 또는 Vue 구성 요소 스타일 문제로 인해 발생합니다.

이런 종류의 문제를 처리할 때는 채우기 속성을 사용하여 해결할 수 있습니다. Vue 구성 요소를 사용하는 경우 구성 요소에 스타일 태그를 추가하여 SVG의 기본 색상을 재정의할 수 있습니다.

<template>
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" class="icon">
    <path fill="currentColor"
          d="M6.7 16.7L15.3 8 6.7 0 5 1.7l6.7 6.6-6.7 6.6z"/>
  </svg>
</template>

<style scoped>
svg {
  fill: red;
}
</style>

문제 4: SVG 구성 요소가 올바르게 도입되지 않았습니다.

Vue 응용 프로그램에서 SVG 구성 요소를 사용하는 경우 이 구성 요소가 사용되는 모든 위치에 이 구성 요소를 도입해야 합니다.

import를 사용하여 SVG 구성 요소를 전역적으로 또는 로컬로 가져올 수 있습니다. vue-svgicon을 사용하는 경우 SVG 구성 요소를 올바르게 가져오도록 다음 구성을 추가하세요.

import Vue from 'vue';
import SvgIcon from 'vue-svgicon';
Vue.component('svg-icon', SvgIcon);

여전히 SVG를 표시할 수 없는 경우 확인하세요. 올바르게 가져오고 사용하는지 확인하고 콘솔에서 다음 오류를 확인하세요.

error: 'svgicon' is not defined

위의 솔루션은 Vue 애플리케이션을 사용할 때 SVG가 표시되지 않는 대부분의 문제를 해결해야 합니다. 문제가 여전히 해결되지 않으면 다음 방법으로 다른 해결 방법을 찾을 수 있습니다.

  1. SVG 아이콘이 손상되었는지 확인하세요.
  2. 브라우저가 SVG 형식을 지원하는지 확인하세요.
  3. 앱이나 브라우저를 다시 시작하세요.

즉, Vue 애플리케이션에서 SVG 아이콘을 사용할 때 문제가 발생하는 경우 위의 해결 방법을 시도하거나 Vue 애플리케이션의 다른 구성 요소가 SVG 아이콘 표시에 영향을 미치는지 확인할 수 있습니다.

위 내용은 vue의 svg가 표시되지 않습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.