我在我的react项目上的图像有一些问题。事实上,我一直认为src属性的相对路径是建立在文件体系结构上的

下面是我的文件架构:

components
    file1.jsx
    file2.jsx
    file3.jsx
container
img
js 
... 

然而,我意识到路径是建立在url上的。在我的一个组件(例如file1.jsx)中,我有这个:

localhost/details/2
<img src="../img/myImage.png" /> -> works

localhost/details/2/id
<img src="../img/myImage.png" /> -> doesn't work, images are not displayed

怎么解决这个问题呢?我想在任何形式的路由处理的react-router,所有的图像可以显示相同的路径。


当前回答

一位朋友向我展示了如何做到这一点:

".当请求图像的文件(例如,"example.js")在文件夹树结构中与文件夹"images"在同一层时,/"工作。

其他回答

在组件中导入图像

import RecentProjectImage_3 from '../../asset/image/recent-projects/latest_news_3.jpg'

并在image src={RecentProjectImage_3}上调用图像名称作为对象

 <Img src={RecentProjectImage_3} alt="" />

一位朋友向我展示了如何做到这一点:

".当请求图像的文件(例如,"example.js")在文件夹树结构中与文件夹"images"在同一层时,/"工作。

如果图像放在src文件夹中,请使用以下方法:

<img src={require('../logo.png')} alt="logo" className="brand-logo"/>

在create-react-app中有一个公共文件夹(index.html…) 如果你把“myImage.png”放在img子文件夹下,你可以通过以下方式访问:

<img src={window.location.origin + '/img/myImage.png'} />

如果你的页面url包含多个/,那么在src中返回/ count - 1次。

例如页面url http://localhost:3000/play/game/,那么src url必须是../your-image-folder/image-name。你的your-image文件夹必须在公共文件夹中。