我们在rails 5 app中使用vis.js网络库。它通过纱线安装并在资产管道(application.js)中需要:
//= require vis/dist/vis
//= require vis/dist/vis-network.min
在开发环境中一切都很好,但我们的水豚功能测试会引发错误
Rack app error handling request { GET /assets/img/network/editIcon.png }
#<ActionController::RoutingError: No route matches [GET] "/assets/img/network/editIcon.png">
最糟糕的是,此错误并不总是出现,但py在capybara屏幕截图中永远不可见。
任何线索,为什么开发和测试环境可能会有所不同?
答案 0 :(得分:0)
config.assets.debug = true
后,我们找回了png。此处描述了此选项的效果:https://stackoverflow.com/a/20859448/2459156
答案 1 :(得分:0)
在测试模式下运行config.assets.debug = true
不是一个很好的解决方案,因为这意味着您的测试环境不再与资产角度(没有连接等)匹配您的生产环境。
正确的解决方案是将指定图像资源的路径添加到Rails.application.config.assets.paths
(通常在config/initializers/assets.rb
中完成)