我意识到这里已经回答了类似的问题,但其中许多答案是使用 gems 或直接修改 Bootstrap 的文件。虽然这些都是有效的配置,但我想增加我在这方面的知识(Sprockets、Rails Pipeline、一般的前端开发),并想了解为什么这不起作用,潜在的问题是什么。
Ruby 2.0.0-p353、Rails 4.0.2、Bootstrap 3.0.3、Nginx 1.4.4、Passenger 4.0.33
我从他们的网站下载了最新的 Bootstrap zip,执行了此处找到的所有操作,将这些文件直接包含到我的应用程序中,并且能够让字形图标完全按照预期在我的开发环境中显示。但是,当我部署到生产环境时,字形图标在 Chrome 中显示为正方形。我将 glyphicons 文件的单个文件扩展名添加到生产预编译中,并验证它们显示在我的 public/assets 文件夹中。js/css 文件和 glyphicon 文件之间的唯一区别是 glyphicon 文件旁边没有 gzip 文件。
生产.rb:
config.assets.precompile = ['*.js', '*.css', '*.eot', '*.svg', '*.ttf', '*.woff']
我知道 Rails 在开发和生产之间加载资产的方式不同,但为什么它没有看到或理解生产中的 glyphicon 资产?有没有办法用我当前的配置来解决这个问题,还是我需要改变我包含这些资产的方式以允许我修复这个错误?
此外,在开发和生产中,每次渲染使用字形图标的页面时都会出现以下错误,但图标仍然显示。这有关系吗?
- ActionController::RoutingError (没有路线匹配 [GET] "/fonts/glyphicons-halflings-regular.woff")
- ActionController::RoutingError (没有路线匹配 [GET] "/fonts/glyphicons-halflings-regular.ttf")
- ActionController::RoutingError (没有路线匹配 [GET] "/fonts/glyphicons-halflings-regular.svg")