除非使用import

时间:2018-06-05 13:49:57

标签: ruby-on-rails image webpack webpacker

我正在使用Rails 5.1应用程序中的@ rails / webpacker 3。我一直试图弄清楚是否有办法不必定义导入相应pack / * .js文件中的每个单独的图像。

我有默认的webpacker配置设置和保存在此位置的图像文件。

 <app_root>/app/javascript/images/image.png

在我看来,我有图像元素集

#<app_root>/app/views/layouts/application.html.erb
...
<img src="<%asset_pack_path 'images/image.png%>"> 
...

除非我将其导入到我在此处执行的包文件中,否则不会加载图像:

#<app_root>/app/javascript/packs/application.js
import 'images/image.png'

似乎我正在做额外的不必要的工作来在应用程序视图中呈现图像。我假设asset_pack_path方法和webpacker将执行此图像导入,因为它似乎必须定义两次是重复代码。

我是否遗漏了某些内容,或者这是关于如何使用webpack和rails加载图像的设计意图?

3 个答案:

答案 0 :(得分:1)

通过将此添加到我的javascript中看起来好像。

<object width="100%" height="800" type="application/pdf" data="/example.pdf" id="pdf_content">
            <p>Insert your error message here, if the PDF cannot be displayed.</p>
</object>

指导是我在其他人指导的问题 - https://github.com/rails/webpacker/issues/705

答案 1 :(得分:1)

更新我原来的回答停止了工作。这是当前的工作方式。另请参阅我在https://github.com/rails/webpacker/issues/705

上的评论

将此添加到app/javascripot/packs/app.js(或您的任何包装)中:

// Images
require.context('../images/static', true)

然后在您的Rails视图中使用它们,例如在app/views/layouts/application.html.erb中使用

<img src="<%= asset_pack_path 'media/user.jpg' %>" />

<%= image_pack_tag 'media/user.jpg %>

请注意media/前缀,并删除原始的子文件夹前缀。

答案 2 :(得分:0)

<%= asset_pack_path "media/images/trial.jpg" %>