Webpack 未加载的静态图像
Static images with Webpack not loading
我正在使用 Webpack 处理 React,但我无法加载静态图像。加载程序似乎正确地将图像转换为 URL,但在呈现页面时它似乎无法用作 img src。图片的相对路径是正确的。下面是我的代码:
webpack.config.dev.js:
module: {
loaders: [
{
test: /\.css$/,
exclude: /node_modules/,
loader: 'style-loader!css-loader?localIdentName=[name]__[local]__[hash:base64:5]&modules&importLoaders=1&sourceMap!postcss-loader',
}, {
test: /\.css$/,
include: /node_modules/,
loaders: ['style-loader', 'css-loader'],
}, {
test: /\.jsx*$/,
exclude: [/node_modules/, /.+\.config.js/],
loader: 'babel',
}, {
test: /\.(jpe?g|gif|png|svg)$/i,
loader: 'url-loader',
options: {
limit: 25000,
},
}, {
test: /\.json$/,
loader: 'json-loader',
}, {
test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'url-loader?limit=100000' }
],
},
反应代码
import React, { Component} from 'react';
import styles from './Album.css';
const logo = require('./img/MoP.png');
export class Album extends Component{
constructor(props){
super(props);
console.log(logo);
}
render(){
return (
<div className = {styles.album}>
<div className="row">
<div className="col-8">
<div className="albumInfo">
<h6> {this.props.title} </h6>
<h6> {this.props.artist} </h6>
<h6> {this.props.date} </h6>
<h6> Rating: {this.props.rating} </h6>
<h6> {this.props.comment} </h6>
</div>
</div>
<div className="col-4 align-self-center">
<img src={logo}></img>
</div>
</div>
</div>
)
}
}
export default Album;
我使用 url-loader 和 file-loader 尝试了很多不同的方法,但我还没有成功。我将不胜感激!
谢谢。
你看到的是图片的base64编码。
我不熟悉 'url-loader',但快速浏览一下他们的 page
说它将图像加载为 base64。
您可以在这里找到一些有用的信息:https://css-tricks.com/data-uris/
如果您更喜欢图像路径而不是 base64,则可能需要考虑使用不同的加载器。希望对你有帮助。
从 webpack 配置看来,您 运行 两次 url-loader
相同的文件类型。这可能会破坏您的图像输出。
我正在使用 Webpack 处理 React,但我无法加载静态图像。加载程序似乎正确地将图像转换为 URL,但在呈现页面时它似乎无法用作 img src。图片的相对路径是正确的。下面是我的代码:
webpack.config.dev.js:
module: {
loaders: [
{
test: /\.css$/,
exclude: /node_modules/,
loader: 'style-loader!css-loader?localIdentName=[name]__[local]__[hash:base64:5]&modules&importLoaders=1&sourceMap!postcss-loader',
}, {
test: /\.css$/,
include: /node_modules/,
loaders: ['style-loader', 'css-loader'],
}, {
test: /\.jsx*$/,
exclude: [/node_modules/, /.+\.config.js/],
loader: 'babel',
}, {
test: /\.(jpe?g|gif|png|svg)$/i,
loader: 'url-loader',
options: {
limit: 25000,
},
}, {
test: /\.json$/,
loader: 'json-loader',
}, {
test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'url-loader?limit=100000' }
],
},
反应代码
import React, { Component} from 'react';
import styles from './Album.css';
const logo = require('./img/MoP.png');
export class Album extends Component{
constructor(props){
super(props);
console.log(logo);
}
render(){
return (
<div className = {styles.album}>
<div className="row">
<div className="col-8">
<div className="albumInfo">
<h6> {this.props.title} </h6>
<h6> {this.props.artist} </h6>
<h6> {this.props.date} </h6>
<h6> Rating: {this.props.rating} </h6>
<h6> {this.props.comment} </h6>
</div>
</div>
<div className="col-4 align-self-center">
<img src={logo}></img>
</div>
</div>
</div>
)
}
}
export default Album;
我使用 url-loader 和 file-loader 尝试了很多不同的方法,但我还没有成功。我将不胜感激!
谢谢。
你看到的是图片的base64编码。 我不熟悉 'url-loader',但快速浏览一下他们的 page 说它将图像加载为 base64。 您可以在这里找到一些有用的信息:https://css-tricks.com/data-uris/ 如果您更喜欢图像路径而不是 base64,则可能需要考虑使用不同的加载器。希望对你有帮助。
从 webpack 配置看来,您 运行 两次 url-loader
相同的文件类型。这可能会破坏您的图像输出。