import React from 'react';
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
import icon from '@/assets/images/bg.jpg'
const App = () => {
return (
<Router>
<div>
<img src={icon} alt="logo" /> {/* success */}
<img src="./assets/images/bg.jpg" alt="logo" /> {/* fail */}
</div>
</Router>
)
}
export default App;
编译的HTML
<div>
<img src="/img/bg.896ed149.jpg" alt="logo">
<img src="./assets/images/bg.jpg" alt="logo">
</div>
为什么create-react-app可以使用第二种方式?
我希望可以用第二种方式渲染图像。
我的webpack.base.config网址加载器
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 8192,
name: 'img/[name].[hash:8].[ext]'
}
},
答案 0 :(得分:1)
图像已复制到您的构建文件夹中,但名称不匹配。在您的Webpack配置中删除名称的哈希值
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 8192,
name: 'img/[name].[ext]'
}
},
另一件事是,您应该像这样更改图片网址
<img src='/img/bg.jpg'/>
答案 1 :(得分:0)
对不起,我理解错了。 创建反应应用程序也不起作用。