我应该通过导入相对路径还是通过引用文件 URL 在节点中加载照片,以及如何正确地从它们的相对路径加载照片?
目前我正在使用 express 提供静态文件:
server.use(express.static(__dirname + '/../public'));
并通过引用文件 URL 加载照片:
<img src='/images/tom.jpg'/>
我有一个 webpack 配置设置为在 (png|jpg|gif) 上使用文件加载器,并且 webpack 文档说,使用文件加载器,您可以从相对路径 ( https://webpack.js.org ) 导入照片/loaders/file-loader/#src/components/Sidebar/Sidebar.jsx):
import img from './file.png'
使用此配置(这是我正在使用的配置):
module.exports = {
module: {
rules: [
{
test: /\.(png|jpg|gif)$/,
use: [
{
loader: 'file-loader',
options: {}
}
]
}
]
}
}
但是,当我尝试从其相对路径导入图像时:
//import
import img from '../../public/images/tom.jpg';
//render
<img src={img}/>
我收到此错误:
/Users/ryan/Desktop/Df/Coding/ryanchacon.io/node_modules/babel-core/lib/transformation/file/index.js:590 抛出错误;^
语法错误:/Users/ryan/Desktop/Df/Coding/ryanchacon.io/public/images/tom.jpg:意外字符“�”(1:0)
1 | ����
但是,如果我发出“从相对路径导入”,启动我的服务器,然后将相对导入添加回来,图像将从其相对路径加载。但是,如果我重新启动服务器,则会再次引发错误。
因此,我改为引用文件 URL 来解决此错误,但我不确定如何使用我的 webpack/node 配置从它们的相对路径正确加载文件。
目前,我正在运行 node v8.6.0、webpack v3.6.0、express v4.15.4、file-loader v1.1.5 和 react v16.0.0。