图像未在生产模式下显示
Image not displaying in production mode
图像未在生产模式下显示。它在开发环境中运行良好。
例如以下代码不显示图片
<img alt="" class="img-circle" src="/assets/avatar.jpg">
但它适用于 image_tag
<%= image_tag 'avatar.jpg',class:"img-circle", :width=>'29' %>
生成以下 html
<img class="img-circle" width="29" src="/assets/avatar-cabb5744ce203e3fd174df28be60bfb942d35013b57513680aadda2ba9602762.jpg" alt="Avatar cabb5744ce203e3fd174df28be60bfb942d35013b57513680aadda2ba9602762">
Production.rb
config.serve_static_files = false
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true
文件 avatar.jpg 实际上在 assets/images 文件夹中可用。
这里的实际问题是什么?我该如何解决?
那是因为您需要对任何此类资产使用 image_tag
。您不能对路径进行硬编码,因为当您编译这些资产时它们会发生变化并且它们会被散列。
Rails 对每个静态资产进行内容散列,以确保名称对于任何给定修订都是唯一的。这避免了需要强制人们刷新才能获得更改的缓存破坏问题,还有助于为未更改的资产保留缓存。
缺点是最终名称不可预测,当应用程序处于 运行 生产模式时,您需要使用 image_tag
来计算它。
图像未在生产模式下显示。它在开发环境中运行良好。
例如以下代码不显示图片
<img alt="" class="img-circle" src="/assets/avatar.jpg">
但它适用于 image_tag
<%= image_tag 'avatar.jpg',class:"img-circle", :width=>'29' %>
生成以下 html
<img class="img-circle" width="29" src="/assets/avatar-cabb5744ce203e3fd174df28be60bfb942d35013b57513680aadda2ba9602762.jpg" alt="Avatar cabb5744ce203e3fd174df28be60bfb942d35013b57513680aadda2ba9602762">
Production.rb
config.serve_static_files = false
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true
文件 avatar.jpg 实际上在 assets/images 文件夹中可用。
这里的实际问题是什么?我该如何解决?
那是因为您需要对任何此类资产使用 image_tag
。您不能对路径进行硬编码,因为当您编译这些资产时它们会发生变化并且它们会被散列。
Rails 对每个静态资产进行内容散列,以确保名称对于任何给定修订都是唯一的。这避免了需要强制人们刷新才能获得更改的缓存破坏问题,还有助于为未更改的资产保留缓存。
缺点是最终名称不可预测,当应用程序处于 运行 生产模式时,您需要使用 image_tag
来计算它。