워드프레스나 티스토리 네이버블로그등 홈페이지를 개설하고 사진을 업로드하다보면 간혹 시간이 지나면 이미지 링크가 깨지는 경우가 있습니다.
그리고 크롬 브라우저의 최신 업데이트 이후 많은 사용자들이 웹페이지의 이미지가 깨지는 문제를 겪고 있습니다. 이러한 현상은 보안 강화 정책에 의해 발생하는데, 특히 보안이 적용되지 않은 HTTP 이미지를 차단하기 때문입니다. 아래에 이미지 깨짐 문제의 원인, 해결 방법, 그리고 예시를 알아보도록 하겠습니다.
참고 : 워드프레스 깨진링크 확인 3가지 수정 -웹사이트 검색엔진 최적화
워드프레스의 경우 링크가 깨진 이미지나 URL 등을 찾아 주는 플러그인이 있기 때문에 이를 활용하면 쉽게 사용하지 않는 이미지나 링크등을 찾아 제거하거나 수정할 수 있습니다.
깨진 이미지란?
깨진 이미지는 웹페이지나 애플리케이션에서 의도한 대로 표시되지 않는 그래픽 파일, 그림, 또는 사진을 의미합니다. 깨진 이미지는 일반적으로 로드되지 않으며, 대신 빈 공간이나 깨진 이미지 아이콘이 나타납니다.
이미지 깨짐의 주요 원인
1. HTTP와 HTTPS의 혼용
보안이 강화된 크롬 브라우저에서는 HTTPS로 접속한 웹페이지에서 HTTP로 시작하는 이미지 파일을 로드하려고 할 때, 이를 보안 위협으로 간주하고 차단합니다. 이는 사용자 데이터를 보호하고, 안전한 웹 환경을 유지하기 위한 조치입니다.
이미지가 깨져 보이지 않고, 대신 깨진 이미지 아이콘이 나타납니다. 브라우저의 개발자 도구 콘솔에 보안 관련 경고 메시지가 표시될 수 있습니다.
2. 이미지 파일의 손실
이미지 파일이 서버에서 삭제되거나 이동되었을 때, 해당 파일의 경로를 통해 이미지를 불러올 수 없게 됩니다. 이러한 경우 웹페이지는 이미지를 찾지 못해 깨진 이미지로 표시됩니다.
해당 이미지의 자리에 빈 공간이나 깨진 이미지 아이콘이 표시됩니다. 서버 로그에 파일을 찾을 수 없다는 오류 메시지가 기록될 수 있습니다.
3. 잘못된 URL 경로
이미지 파일의 경로가 잘못 설정되었거나 오타가 있는 경우, 브라우저는 올바른 위치에서 이미지를 찾을 수 없기 때문에 로드하지 못합니다.
이미지가 표시되지 않고, 이미지 경로가 틀렸다는 오류 메시지가 개발자 도구 콘솔에 나타날 수 있습니다. 또한, 이미지 태그의 src 속성을 확인해보면 잘못된 경로가 표시됩니다.
4. 이미지 파일 손상
이미지 파일 자체가 손상된 경우, 파일이 정상적으로 로드되지 않아 깨진 이미지가 나타납니다. 파일 전송 중 오류가 발생했거나, 파일이 저장되는 과정에서 손상될 수 있습니다.
이미지 파일이 로드되지 않으며, 파일 뷰어를 사용하여 파일을 열어보면 이미지가 제대로 표시되지 않거나, 파일이 손상되었다는 메시지가 나타납니다.
5. 캐시 문제
브라우저나 서버의 캐시가 손상되거나, 오래된 캐시가 남아 있는 경우, 이미지를 제대로 로드하지 못할 수 있습니다. 캐시는 웹페이지 로드 속도를 높이기 위해 자주 사용되는 데이터를 임시로 저장하는 공간입니다.
이미지가 로드되지 않거나, 잘못된 이미지가 표시됩니다. 브라우저 캐시를 비우면 문제가 해결되는 경우가 많습니다.
6. 브라우저 설정 및 외부 프로그램
브라우저 설정에서 이미지 로드를 차단하거나, 바이러스 백신 프로그램 또는 기타 보안 소프트웨어가 이미지를 차단할 수 있습니다. 이는 보안 위협을 줄이기 위한 조치일 수 있습니다.
특정 브라우저에서만 이미지가 깨지거나, 특정 컴퓨터에서만 발생하는 문제일 수 있습니다. 브라우저 설정이나 보안 소프트웨어의 로그에서 이미지 차단과 관련된 메시지를 확인할 수 있습니다.
홈페이지 이미지 깨짐 해결 방법
홈페이지 이미지 깨짐 해결 방법
이미지가 깨지는 문제를 해결하기 위해 다양한 접근 방식을 사용할 수 있습니다. 아래에는 주요 원인에 따른 해결 방법을 상세히 설명합니다.
1. HTTP와 HTTPS의 혼용 문제 해결
해결 방법
- SSL 인증서 적용: 웹사이트와 이미지 서버 모두에 SSL 인증서를 설치합니다. 이를 통해 모든 트래픽을 HTTPS로 전환할 수 있습니다.
- SSL 인증서는 신뢰할 수 있는 인증 기관(CA)에서 구매할 수 있습니다. 무료로 사용할 수 있는 Let’s Encrypt와 같은 옵션도 있습니다.
- SSL 인증서를 설치한 후 웹 서버 설정을 업데이트하여 HTTP 요청을 HTTPS로 리디렉션합니다.
- 이미지 URL 수정: 웹페이지의 HTML 코드에서 모든 이미지 URL을 HTTP에서 HTTPS로 변경합니다.
- 예시:
<img src="http://example.com/image.jpg">
를<img src="https://example.com/image.jpg">
로 변경합니다.
- 예시:
예시
<!-- Before -->
<img src="http://example.com/image.jpg" alt="Example Image">
<!-- After -->
<img src="https://example.com/image.jpg" alt="Example Image">
2. 이미지 파일 손실 문제 해결
해결 방법
- 파일 복원: 손실된 이미지를 서버에 다시 업로드합니다. 파일이 삭제되었거나 이동된 경우 원래 위치에 파일을 복원합니다.
- 백업 활용: 정기적으로 백업을 수행하고, 문제가 발생했을 때 백업 파일을 사용하여 복원합니다.
예시
- 서버의 이미지 파일 경로:
/var/www/html/images/image.jpg
- 이미지 파일이 삭제되었으면 해당 파일을 다시 업로드합니다.
3. 잘못된 URL 경로 문제 해결
해결 방법
- 경로 수정: HTML 코드에서 이미지 경로가 올바른지 확인하고, 잘못된 경로를 수정합니다.
- 파일 구조 점검: 서버의 디렉토리 구조를 확인하여 이미지 파일이 올바른 위치에 있는지 점검합니다.
예시
<!-- Before (Incorrect Path) -->
<img src="/images/wrong-path/image.jpg" alt="Example Image">
<!-- After (Correct Path) -->
<img src="/images/correct-path/image.jpg" alt="Example Image">
4. 이미지 파일 손상 문제 해결
해결 방법
- 파일 재업로드: 손상된 이미지를 다시 업로드합니다. 파일이 제대로 전송되지 않았거나 손상된 경우 원본 파일을 사용하여 재업로드합니다.
- 파일 무결성 확인: 이미지 파일의 무결성을 확인하여 손상 여부를 판단합니다. 파일 뷰어를 사용하여 파일을 열어보고, 문제가 없는지 확인합니다.
예시
- 손상된 파일을 삭제하고, 원본 파일을 다시 업로드합니다:
scp original-image.jpg user@server:/var/www/html/images/image.jpg
5. 캐시 문제 해결
해결 방법
- 브라우저 캐시 초기화: 사용자가 브라우저 캐시를 비우도록 안내합니다. 캐시를 초기화하면 오래된 캐시 문제가 해결됩니다.
- 서버 캐시 초기화: 서버 캐시를 초기화하거나, 캐시를 무시하고 최신 파일을 로드하도록 설정합니다.
예시
- 브라우저 캐시 비우기: Chrome 설정 > 고급 > 개인정보 보호 및 보안 > 인터넷 사용 기록 삭제 > 캐시된 이미지 및 파일 선택 후 삭제.
- 서버 캐시 초기화: 서버 설정에서 캐시 무효화 설정을 적용합니다.
6. 브라우저 설정 및 외부 프로그램 문제 해결
해결 방법
- 브라우저 설정 확인: 사용자가 브라우저에서 이미지 로드 설정을 확인하고, 이미지 로드를 허용하도록 안내합니다.
- 보안 소프트웨어 설정: 바이러스 백신 프로그램이나 기타 보안 소프트웨어의 설정을 확인하고, 이미지 차단을 해제합니다.
예시
- Chrome에서 이미지 로드 설정 확인: 설정 > 고급 > 콘텐츠 설정 > 이미지 > 모든 사이트에서 이미지 표시 설정 확인.
- 바이러스 백신 프로그램에서 웹 보호 기능을 일시적으로 비활성화하거나, 예외 설정에 해당 웹사이트를 추가합니다.
추가 도구 활용
1. 크롬 개발자 도구 활용
방법
- 크롬 브라우저에서 웹페이지를 열고, F12 키를 눌러 개발자 도구를 엽니다.
- 콘솔 탭에서 아래의 JavaScript 코드를 실행하여 깨진 이미지의 URL을 확인합니다.
예시 코드
function isImageBroken(image) {
return image.naturalWidth === 0 || image.naturalHeight === 0 || image.complete === false;
}
const images = document.querySelectorAll('img');
const brokenImageUrls = [];
images.forEach((img) => {
if (isImageBroken(img) && img.getAttribute('src')) {
brokenImageUrls.push(img.getAttribute('src'));
}
});
console.log('Broken Image URLs:', brokenImageUrls);
2. WebSite Auditor 사용
방법
- WebSite Auditor 도구를 다운로드하여 설치합니다.
- 도구를 실행하고 웹사이트 URL을 입력하여 프로젝트를 생성합니다.
- 웹사이트를 스캔하여 깨진 이미지를 찾고, 문제를 해결합니다.
결론
이미지 깨짐 문제는 주로 보안 프로토콜의 차이로 인해 발생하며, SSL 인증서를 적용하여 이를 해결할 수 있습니다. 또한 크롬 개발자 도구를 활용하여 문제를 분석하고, 다이렉트센드 에디터와 같은 도구를 사용하여 보다 쉽게 이미지를 관리할 수 있습니다. 앞으로 웹사이트에 이미지를 업로드할 때는 반드시 HTTPS 프로토콜을 사용하여 보안을 강화하는 것이 중요합니다.