【发布时间】:2018-05-06 23:03:14
【问题描述】:
我有一个使用 webpack 和 react 的项目。我使用 file-loader / url-loader 在 webpack/react 设置中使用图像。在我的反应项目中,我做import Img from '/image/source/image.jpg',但如果然后尝试<img src={Img}>,src 是一个base64 代码,上面写着module.exports = __webpack_public_path__ + "images/code.61e3a3939c2f93f30ac21419625c9a4f.jpg";,并且没有显示图像。我该如何解决这个问题?
webpack.config.js
var webpack = require( 'webpack' )
var path = require( 'path' )
var BUILD_DIR = path.resolve( __dirname, 'src/client/public' );
var APP_DIR = path.resolve( __dirname, 'src/client/App' );
var config = {
mode : 'development',
entry : APP_DIR + '/index.jsx',
output : {
path : BUILD_DIR,
filename : 'bundle.js'
},
devServer : {
publicPath : '/',
contentBase : './src/client'
},
module : {
rules : [
{
test : /\.jsx|js?/,
include : APP_DIR,
exclude : /(node_modules)/,
loader : 'babel-loader',
query : {
presets : [ 'env', 'react' ]
}
},
{
test : /\.scss|.css$/,
loaders : [ 'style-loader', 'css-loader', 'sass-loader' ]
},
{
test : /\.(png|jp(e*)g|svg)$/,
use : [{
loader : 'url-loader',
options : {
limit : 8000,
name : 'images/[hash]-[name].[ext]'
}
}]
},
{
test : /\.(png|jp(e*)g|svg)$/,
use : {
loader: "file-loader",
options: {
name: "images/[name].[hash].[ext]"
}
}
}
]
}
};
module.exports = config;
【问题讨论】:
-
你能展示你的代码吗?
-
您能告诉我们更多详细的代码吗?
-
这是你需要在 Webpack 配置中使用
public-path和file-loaderexportname解决的问题。您应该向我们展示您现在使用的 Webpack 配置。 -
@Up209d 我添加了配置
-
@RickGrendel 嘿兄弟,为什么你的
dev-server有contentBase的src/client,它应该从你的BUILD_DIR提供资产,因为你所有的资产都由Webpackfile loaders处理送到那里。
标签: javascript node.js reactjs webpack