启用JavaScript的测试出错(Bootstrap 3,Rails 4,Travis CI)

Ser*_*sky 5 javascript ruby-on-rails travis-ci ruby-on-rails-4 twitter-bootstrap-3

我有奇怪的错误,只出现在CI环境中.此错误不会出现在开发,生产甚至本地测试环境中.

ActionController::RoutingError: No route matches [GET] "/fonts/bootstrap/glyphicons-halflings-regular.svg"
Run Code Online (Sandbox Code Playgroud)

完整的痕迹可以在这里找到

在开发和生产环境中,成功的需求依然存在/assets/bootstrap/glyphicons-halflings-regular.woff.在/fonts/- /assetssvg- woff部分存在差异.启用JavaScript的所有错误都启用了测试(Poltergeist/PhantomJS驱动程序).定期的Capybara测试都是绿色的.Chrome devtools表示,字体文件的请求是由jquery.js生成的,而不是页面或css文件.

Top*_*unt 0

如果您有与我们类似的设置,则您在 Rails 上手动安装了 Bootstrap,并且必须执行一些手动 CSS 样式覆盖才能将 Glyphicon 字体指向正确的路径。(/assets/botostrap...而不是/fonts/bootstrap...)。然而,原始样式仍然存在于 bootstrap.css 中,即使它们被覆盖,PhantomJS 似乎仍然在检测和使用这些原始样式。

在我们的例子中,我们必须在 bootstrap.css 中搜索所有对 glyphicons-halflings 的引用,并将路径更改为正确的路径。这样做之后,路由错误就会消失。

祝你好运!