リアクションにローカルアセットを保存するのが非常に新しい。ローカルイメージがリアクションに読み込まれない
私は、ファイル・ローダーと画像ローダーでのWebPACKを設定し、ローカルの画像を保存しますが、何らかの理由でそれが表示されていないようだしました:
import React, { Component } from 'react';
import WorkItem from './work-item';
import WorkItemsArray from './work-items-array';
class Work extends Component {
render() {
return (
<div id='work'>
<h1>Work</h1>
<img src={require('../images/weatherImg.png')}/>
<div id='portfolio'>
{WorkItemsArray.map(({ url, img, title, description, github }) => {
return (
<WorkItem
key={title}
url={url}
img={img}
title={title}
description={description}
github={github}
/>
);
})}
</div>
</div>
);
}
}
export default Work;
webpack.config.jsを
var webpack = require('webpack');
module.exports = {
entry: [
'./src/index.js'
],
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
{
test: [/\.css$/, /\.scss$/],
exclude: /node_modules/,
loaders: ['style-loader', 'css-loader', 'sass-loader']
},
{
test: /.*\.(gif|png|jpe?g|svg)$/i,
use: [
{
loader: 'file-loader',
options: {
name: 'images/[name]_[hash:7].[ext]'
}
}
]
},
{
test: /\.(gif|png|jpe?g|svg)$/i,
use: [
'file-loader',
{
loader: 'image-webpack-loader',
options: {
mozjpeg: {
progressive: true,
quality: 65
},
// optipng.enabled: false will disable optipng
optipng: {
enabled: false,
},
pngquant: {
quality: '65-90',
speed: 4
},
gifsicle: {
interlaced: false,
},
// the webp option will enable WEBP
webp: {
quality: 75
}
}
}
]
}
]
},
resolve: {
extensions: ['*', '.js', '.jsx']
},
output: {
path: __dirname + '/dist',
publicPath: '/',
filename: 'bundle.js'
},
devServer: {
contentBase: './dist',
historyApiFallback: true
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})
]
};
FWIW、私はイメージがしていないようですだけという、まったくエラーが届きません読み込み中です。
大変助かりました!
ブラウザに表示されるURLは何ですか?あなたは新しいタブでURLを移動するとワットが発生しますか?転送中にネットワークエラーが発生しましたか? – Panther
URLは '/ images/weatherImg_6281b3f.png'です。新しいタブでそのURLに移動すると、空白の黒い画面が表示されます。私がネットワークタブに行くと、ステータスは305 – doctopus
になりますが、コンポーネントで管理する状態がない場合は 'class'を使用しないのが理想的です。 –