我使用Webpacker和Rails 5。1.4使用React、Redux和react-router-dom。
我在app/javascript/src/components/
中有一个Navbar.jsx
组件需要显示图像,但我无法访问存储在app/assets/images/
中的图像。
以下是我尝试过的:
<img src="logo.png" alt="Logo" />
<img src="assets/logo.png" alt="Logo" />
<img src="assets/images/logo.png" alt="Logo" />
从根路径上最后一次尝试工作,因为/assets/images/logo.png
确实存在,但是当我导航到/posts/:id
时,它给了我以下错误:
logo.png:1 GET http://localhost:3000/posts/assets/images/logo.png 404 (Not Found)
你能帮我吗?更多关于你在那种或混合React/Rails应用程序中处理图像的方式?
谢谢
5条答案
按热度按时间qvtsj1bj1#
只需编辑文件
config/webpacker.yml
并替换以下行:用这个:
然后,将图像放入
app/assets/images
文件夹并像这样加载:lg40wkob2#
您甚至可以在组件中创建图像文件夹。将其加载到组件文件中,如下所示-
WebPacker在内部将这些映像路径转换为包。
dly7yett3#
更新2021(rails 6.1.4),
resolved_paths
键已更改为additional_paths
。所以,改变:
进入:
剩下的是丹尼尔的答案
czq61nw14#
也许这会有所帮助:https://engineering.klarna.com/migrating-from-rails-asset-pipeline-to-node-s-webpack-684230e3a93a查看图像部分。
pxq42qpu5#
对于那些可能仍然有这个问题的人,给予这个:
把你的img放在app/assets/images中。在这个例子中,我的形象被称为“标志。png '.
在你的申请中。html.erb文件,把这个放在头部:
现在,在组件中,渲染图像:
希望这能帮上忙。