使用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/
添加到图像路径吗?
原因:在此错误发生之前,我创建了一个名为“资产”的模型。我的routes.rb文件中的resources :assets
功能与image_pack_tag
发生冲突,在所有图像的路径中插入了assets/
。当我简单地注释掉route.rb文件中的resources :assets
行,并正确加载了所有图像时,我就意识到了这一点。
解决方案:我命名了资产模型的名称空间,还命名了routes.rb文件中的resources :assets
行。现在可以正确加载所有图像。