Rails 6,webpacker:image_pack_tag渲染错误的图像路径,将“ assets /”添加到URI

问题描述 投票:0回答:1

使用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/添加到图像路径吗?

image tags pack ruby-on-rails-6 webpacker
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.