Rails 6,webpacker:image_pack_tag渲染错误的图像路径,将"assets/"添加到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)

网络打包机配置:

/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/

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

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

最新更新