데이터 URI는 RFC 2397에 의해 정의 된 솔루션으로 작은 파일을 문서에 직접 포함시킵니다. 다음 구문을 통해 작은 파일을 지정된 인코딩으로 전환하여 페이지에 직접 포함시킬 수 있습니다.
데이터 : [<mime-type>] [; base64], <data>
지난 세기에 HTML4.01은 데이터 URI 솔루션을 도입했습니다. 오늘날까지 IE6 및 IE7 지원을 제외한 모든 주류 브라우저는 여전히 데이터 URI의 지원에 대한 제한이 있으며, 객체 (이미지), IMG, 입력 유형 = 이미지, 링크 및 CSS 및 데이터 볼륨은 32K보다 클 수 없습니다.
이점:MHTML은 MIME HTML (다목적 인터넷 메일 확장 HTML)의 약어이며, 이는 Multimedia 페이지의 모든 내용을 동일한 문서에 저장하기 위해 RFC 2557에 의해 정의됩니다. 이 솔루션은 IE5.0 이후이를 지원하기 위해 Microsoft에 의해 제안되었으며 Opera9.0도 지원하기 시작했습니다. Safari는 파일을 .mht (MHTML 파일의 접미사)에 저장할 수 있지만 표시를 지원하지 않습니다.
MHTML 및 DATA URI는 더 강력한 기능과 더 복잡한 구문으로 유사하며 데이터 URI에서 재사용 할 수없는 단점이 없지만 MHTML은 유연하고 편리하지 않습니다. 예를 들어, 자원을 참조하는 URL은 MHT 파일의 상대 주소가 될 수 있으며, 그렇지 않으면 절대 주소 여야합니다. "Cross Browser Base64 HTML에 내장 된 인코딩 된 이미지"에서 Hedger의 솔루션은 MHTML에 따라 컨텐츠 유형 : Message/RFC822를 선언하기 때문에 상대 경로를 사용합니다. 컨텐츠 유형이 수정되지 않은 경우 MHTML 프로토콜이 필요합니다. 현재 "MHTML- 데이터가 필요할 때 : IE7 이하의 URI"와 같은 절대 경로를 사용해야합니다.
애플리케이션데이터 URI 및 MHTML의 조합은 모든 주류 브라우저를 완전히 해결할 수 있습니다. 캐시 및 재사용 결함으로 인해 페이지에서 직접 사용하기에 적합하지 않습니다. 그러나 CSS 및 JavaScript 파일에서 이미지를 적절히 사용하는 데 큰 이점이 있습니다.
CSS에서 데이터 URI 및 MHTML의 구현을 용이하게하기 위해 데이터 URI & MHTML 생성기를 작성하여 데이터 URI & MHTML 애플리케이션 인스턴스를 생성하는 데 사용할 수 있습니다.
CSS 파일에서 MHTML을 사용하는 경우 URL은 절대 경로를 사용해야하므로 매우 융통성이 없습니다. 따라서 CSS 표현식을 사용하여 해결 (데모)을 사용하는 것을 고려할 수 있습니다.
/*
http://old9.blogsome.com/2008/10/26/css-expression-reloaded/
http://dancewithnet.com/2009/07/27/get-right-url-from-html/
*/
*배경 이미지 : expression (function (ele) {
ele.style.backgroundimage = 'url (mhtml :' +
document.getElementById ( 'data-uri-css'). getAttribute ( 'href', 4) +
'! 03114501408821761.gif)';
}(이것));