2

过去3天一直在为此苦苦挣扎,但无济于事。

在我的 Gemfile 中,我有:

gem 'sass-rails', '3.1.5' # there is a problem with 3.1.6 and we need to downgrade until they update it.
gem "bootstrap-sass"

Bootstrap CSS 工作正常,但它不会在开发或生产模式下显示图像。

development.log 有关于 GET 错误的说明:

GET http://localhost:3000/railsAdminApi/assets/glyphicons-halflings.png 404 (Not Found)

如您所见,它不应该使用项目名称作为路径的一部分。

在我的bootstrap_and_overrides.css.scss文件中,我有这个:

$iconSpritePath: asset-url("glyphicons-halflings.png", image) !default;
$iconWhiteSpritePath: asset-url('glyphicons-halflings-white.png', image);

请注意,我使用asset-url而不是image-path按照这个github 讨论

无论如何,我在这个变量中输入了什么(或者即使我将其改回image-path)都没有关系,路线将始终保持不变,无论我尝试什么,我都无法更改它。

如果我直接编辑 gem 文件的 vendor/assets/stylesheets/bootstrap/_sprites.css.scss 文件(这当然是一件可怕的事情)并放入'assets/'而不是 Sass 变量,浏览器将停止抱怨找不到图标但仍然不会显示图像。

它变得更加棘手:

将 Sass 变量放回 _sprites.css.scss 并预编译会在我的本地机器上显示生产模式下的图像(但不是开发模式)。但是,在远程服务器上,任何组合都不会在生产模式下显示图像。

因此,寻找任何帮助或卸载与引导程序相关的所有内容的方法(清理东西可能是一种选择,因为我确实使用了随后在本地计算机上卸载的其他引导程序 gem)。

谢谢。

编辑

长话短说,我必须删除 RVM 并安装 rbenv 才能让我的 gem 再次工作。这次我选择了twitter-bootstrap-rails更好的,更少的javascript错误,但我仍然对图像有同样的问题,无论是字形还是fontawesome字体。

似乎无论我将什么放入变量中(这次是尊重它们),它总是将项目路径预先railsAdminApi添加到路径中。

绝望中,我想我可以在我的routes.rb文件中添加一个路径,以便可以访问它正在寻找的路径,例如:

get 'railsAdminApi' => 'public/'

当然,Rails 抱怨没有公共控制器,但我不知道如何在没有控制器的情况下创建静态路由。我什至尝试创建一个软链接,但这并没有成功。

4

1 回答 1

0

在您的控制器操作之一中记录资产前缀:

Rails.logger.info [:asset_prefix, YourAppName::Application.instance.config.assets.prefix].inspect

然后访问操作。

如果您看到路径是“/assets”以外的任何内容,则一定是某些东西改变了该路径。我认为引导程序不会那样做。这可能是别的东西。

作为快速修复,将其添加到您的 config/application.rb:

config.assets.prefix = '/assets'

为清楚起见,应在 附近添加config.assets.enabled

这在http://guides.rubyonrails.org/asset_pipeline.html第 5.4 节(更改资产路径)中有所提及。

是否可以找到应用程序/资产中的其他文件?/railsAdminApi如果仅在引导图标之前添加,我会感到惊讶。查看日志以查看正在使用哪些 url 来检索它们(或使用 firebug Net 面板)。

于 2012-05-07T17:07:24.337 回答