ruby-on-rails - Heroku 在默认管道之外找不到资产
问题描述
在 Rails 中,资产的典型管道是:
images/*
javascripts/*
stylesheets/*
我想添加这个文件夹:
images/reports_2019/*
两种在本地有效但在 Heroku 上无效的方法
在本地,我可以访问这样的资产:
= image_tag('reports_2019/zurich_02_pizza')
或者我可以将其添加到assets.rb
文件中:
Dir.glob("#{Rails.root}/app/assets/images/**/").each do |path|
Rails.application.config.assets.paths << path
end
然后像往常一样访问资产:
= image_tag('zurich_02_pizza')
但是这些方法不适用于 Heroku :(
我收到这样的错误:
ActionView::Template::Error (The asset "reports_2019/zurich_02_pizza" is not present in the asset pipeline.):
谁能帮助我,并解释为什么heroku找不到我的本地机器可以找到的东西?
解决方案
您需要 Heroku 的文件扩展名来识别资产路径。
= image_tag('reports_2019/zurich_02_pizza.png')
或者
= image_tag('reports_2019/zurich_02_pizza.jpg')
推荐阅读
- php - 当值与数据库中的值匹配时,如何将单选按钮显示为已选中
- python - torch.stack() 和 torch.cat() 函数有什么区别?
- java - 非法字符集作为回应。无法使用 Spring Rest 模板解析特定的 SOAP XML 响应
- python - 如何使用 python cv2 逐帧显示视频(通过按键)?
- java - 使用简单代码在 Java 或 Python 上创建沙漏模式?
- sql-server - 通过 SSMS 编辑 dtsx
- python-3.x - 将项目的根目录设置为python路径
- html - CSS Grid 容器未以浏览器视口为中心
- javascript - 在 nuxt 中使用 babel-polyfill(而不是 polyfill.io)
- node.js - 有没有办法永久缓存客户端计算机中的文件?