웹 팩 구덩이 밟 는 길 그림 의 경로 와 포장
실제 생산 에서 다음 과 같은 몇 가지 그림 의 인용 방식 이 있다.
1.HTML 파일 에서 img 태그 의 src 속성 참조 또는 내장 스타일 참조
<img src="photo.jpg" />
<div style="background:url(photo.jpg)"></div>
2.CSS 파일 의 배경 그림 등 설정
.photo {
background: url(photo.jpg);
}
3.자 바스 크 립 트 파일 에 동적 으로 추가 되 거나 변 경 된 그림 참조
var imgTempl = '<img src="photo.jpg" />';
document.body.innerHTML = imgTempl;
4.ReactJS 의 그림 참조
import React from 'react';
import ReactDOM from 'react-dom';
class App extends React.Component {
render() {
return (<img src='photo.jpg' />);
}
}
ReactDom.render(<App />, document.querySelector('#container'));
url-loader웹 팩 에 그림 을 도입 하려 면 url-loader 라 는 프로세서 에 의존 해 야 합 니 다.
설치:
npm install url-loader --save-dev
물론 설정 에 기록 하고 다른 도구 모듈 과 함께 설치 할 수 있 습 니 다.웹 팩.config.js 파일 에 다음 과 같이 설정 합 니 다.
module: {
loaders: [
{
test: /\.(png|jpg)$/,
loader: 'url-loader?limit=8192'
}
]
}
test 속성 은 일치 하 는 그림 형식 을 대표 합 니 다.png,jpg 외 에 도 gif 등 을 추가 하여 세로 선 으로 분리 하여 열 수 있 습 니 다.loader 뒤의 limit 필드 는 그림 포장 제한 을 대표 합 니 다.이 제한 은 초과 하면 포장 할 수 없다 는 것 이 아니 라 그림 크기 가 제한 보다 작 을 때 자동 으로 base 64 야드 참조 로 전환 하 는 것 을 말 합 니 다.상례 에서 8192 바이트 이상 의 그림 은 정상적으로 포장 되 고 8192 바이트 이하 의 그림 은 base 64 방식 으로 인용 된다.
url-loader 뒤에 limit 필드 를 제외 하고 name 필드 를 통 해 그림 포장 디 렉 터 리 와 파일 이름 을 지정 할 수 있 습 니 다.
module: {
loaders: [
{
test: /\.(png|jpg)$/,
loader: 'url-loader?limit=8192&name=images/[hash:8].[name].[ext]'
}
]
}
위의 name 필드 는 패키지 루트 디 렉 터 리(output.path)에서 images 라 는 폴 더 를 만 들 고 원래 그림 이름 앞 에 8 비트 hash 값 을 추가 합 니 다.프로젝트 목록
main.css 에서 동급 images 폴 더 의 bg.jpg 그림 을 참조 하 였 습 니 다.
background-image: url(./images/bg.jpg);
이전 설정 을 통 해$webpack 명령 으로 코드 를 포장 한 후 다음 디 렉 터 리 를 생 성 합 니 다.패키지 디 렉 터 리 에서 css 파일 과 images 폴 더 는 같은 등급 을 유지 하고 작업 수정 없 이 그림 에 접근 할 수 있 습 니 다.포장 한 그림 에 hash 값 을 추가 한 것 과 달리 bundle.css 파일 에 도 hash 값 이 있 는 그림 이 도입 되 었 습 니 다.
background-image: url(images/f593fbb9.bg.jpg);
(상례 에서 css 를 단독으로 포장 하 는 기술 을 사 용 했 는데,단지 시연 을 편리 하 게 하기 위해 서 였 다)publicPath
output.publicPath 는 자원 의 발표 주 소 를 표시 합 니 다.이 속성 을 설정 한 후,패키지 파일 에 상대 적 인 경 로 를 통 해 인 용 된 모든 자원 은 설 정 된 경로 로 대 체 됩 니 다.
output: {
path: 'dist',
publicPath: '/assets/',
filename: 'bundle.js'
}
main.css
background-image: url(./images/bg.jpg);
bundle.css
background-image: url(/assets/images/f593fbb9.bg.jpg);
이 속성의 장점 은 그림 CDN 의 주 소 를 설정 하고 로 컬 개발 시 로 컬 그림 자원 을 참조 하여 온라인 으로 포장 할 때 자원 을 모두 CDN 에 가리 키 는 것 입 니 다.그러나 정확 한 발표 주소 가 없 으 면 이 속성 을 설정 하 는 것 을 권장 하지 않 습 니 다.그렇지 않 으 면 포장 한 자원 경 로 를 혼 란 스 럽 게 할 수 있 습 니 다.
JS 사진
웹 팩 으로 프로젝트 개발 을 처음 진행 한 동창 회 는 js 나 react 에서 인용 한 그림 이 bundle 폴 더 에 포장 되 지 않 았 음 을 발견 했다.
정확 한 쓰기 방법 은 모듈 화 된 방식 으로 그림 경 로 를 인용 해 야 합 니 다.이렇게 인용 한 그림 은 bundle 폴 더 에 성공 적 으로 포장 할 수 있 습 니 다.
js
var imgUrl = require('./images/bg.jpg'),
imgTempl = '<img src="'+imgUrl+'" />';
document.body.innerHTML = imgTempl;
react
render() {
return (<img src={require('./images/bg.jpg')} />);
}
HTML 의 그림웹 팩 은 html 에 대한 처리 가 좋 지 않 기 때문에 HTML 파일 의 이미지 자원 을 포장 하 는 것 이 상대 적 으로 가장 번 거 로 운 것 입 니 다.html-withimg-oder 플러그 인 을 참조 해 야 합 니 다.
$ npm install html-withimg-loader --save-dev
webpack.config.js 설정 추가
module: {
loaders: [
{
test: /\.html$/,
loader: 'html-withimg-loader'
}
]
}
bundle.js 에서 html 파일 참조
import '../index.html';
이렇게 html 파일 의 그림 을 bundle 폴 더 에 포장 할 수 있 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
GCD 로 그림 다운로드 하기 (2)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.