【发布时间】:2019-02-11 23:56:15
【问题描述】:
我对 react 和 webpack 还很陌生,我遇到了这个我不明白的奇怪问题。
问题:
当我检查图像时,上面是我看到的,显然没有显示我的图像。我正在使用文件加载器。
我的结构:
网络包:
const path = require("path");
const webpack = require("webpack");
const bundlePath = path.resolve(__dirname, "dist/");
module.exports = {
entry: "./src/index.js",
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /(node_modules|bower_components)/,
loader: "babel-loader",
options: { presets: ["env"], plugins: ["transform-class-properties"] },
},
{
test: /\.js$/,
exclude: /node_modules/,
use: ["eslint-loader"],
},
{
test: /\.css$/,
use: ["style-loader", "css-loader"],
},
{
test: /\.(png|jpg|gif)$/,
use: [
{
loader: "file-loader",
options: {},
},
],
},
],
},
resolve: { extensions: ["*", ".js", ".jsx"] },
output: {
publicPath: bundlePath,
filename: "bundle.js",
},
devServer: {
contentBase: path.join(__dirname, "public"),
port: 8080,
publicPath: "http://localhost:8080/dist",
historyApiFallback: true,
},
plugins: [new webpack.HotModuleReplacementPlugin()],
};
我错过了什么?
编辑:
像这样导入图像:
import headerImage from "../../../../public/images/MyImage.jpg"
像这样渲染:
class Header extends Component {
linkClick = event => {
if (this.props.properties.movment.position.x > 0) event.preventDefault();
};
render() {
return (
<Navbar inverse fluid >
<Navbar.Header>
<Navbar.Brand>
<Image src={headerImage}/>
</Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav pullRight>
<HeaderLinks linkClicked={this.linkClick} />
</Nav>
</Navbar.Collapse>
</Navbar>
);
}
}
【问题讨论】:
-
如何在你的 react 组件中导入图片?
-
是的,发布你如何导入图像的代码
-
请检查编辑
-
我认为你应该看看这个帖子stackoverflow.com/questions/37671342/…,似乎
file-loader正在使用publicPath属性,它可能是你的问题的解决方案 -
你可以试试这个输出:
output: { publicPath: "/dist/", path: path.resolve(__dirname, "dist"), filename: "bundle.js" }
标签: javascript reactjs webpack