Rails 6、webpacker: image_pack_tag renders wrong image path, adds "assets/" to URI

Rails 6, webpacker: image_pack_tag renders wrong image path, adds "assets/" to URI

使用 webpacker 使用新的 Rails 6 个应用程序。图像存储在 /app/frontend/images 中。

//added to /app/frontend/application.js

const images = require.context('../images', true)
const imagePath = (name) => images(name, true)

Webpacker 配置:

/config/webpacker.yml contains:
default: &default
  source_path: app/frontend
  source_entry_path: packs
  public_root_path: public
  public_output_path: packs
  cache_path: tmp/cache/webpacker
  check_yarn_integrity: false
  webpack_compile_output: true

我的问题:image_pack_tag 错误地将 assets/ 添加到图像路径。

<%= image_pack_tag 'media/images/AdminLTELogo.png', alt: 'AdminLTE Logo', class: "brand-image img-circle elevation-3", style: "opacity: .8" %>

渲染... <img alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8" src="/assets/%2Fpacks%2Fmedia%2Fimages%2FAdminLTELogo-28f7e31d41f353b3aaff1236c7108479.png">

从路径中删除 assets/ 将成功渲染图像。

有什么想法可以将 assets/ 添加到图像路径吗?

原因: 就在这个错误之前,我创建了一个名为 'asset' 的模型。我的 routes.rb 文件中的 resources :assets 函数与 image_pack_tag 冲突,在所有图像的路径中插入 assets/。当我简单地注释掉 routes.rb 文件中的 resources :assets 行时,我意识到了这一点,并且所有图像都已正确加载。

解决方案: 我为我的资产模型命名空间,还在我的 routes.rb 文件中为 resources :assets 行命名空间。所有图像现在都可以正确加载。