【问题标题】:Rails loading assets from older gemRails 从旧的 gem 加载资产
【发布时间】:2013-07-23 15:15:09
【问题描述】:

我正在将 rvm 与 bundler 一起使用,并且我最近安装了新版本的 bootstrap-sass gem。然而,即使在执行bundle install 之后,Rails 仍在加载旧版本的引导资源。由于我使用的是rvm,所以我通常不使用bundle exec 来运行东西,但我也尝试过。

只有在我从 gemset 中删除旧 gem(使用 bundle clean --force)之后,新版本的资产才开始加载。

这是列出宝石的结果:

new-host:bot palfvin$ gem list | grep bootstrap
bootstrap-sass (2.3.2.1, 2.1.0.0)

这是搜索 Gemfile.lock 文件的结果(第二次出现在 DEPENDENCIES 部分):

new-host:bot palfvin$ grep bootstrap Gemfile.lock
    bootstrap-sass (2.3.2.1)
  bootstrap-sass

有人可以解释发生了什么吗?

【问题讨论】:

  • Gem 更改后需要重新启动 Rails ... 更新 gem 后是否重新启动 Rails 服务器?
  • 是的,我重新启动了服务器。这就是我在谈论bundle exec 的使用时所指的内容。我通常只做rails s,但为了确定,我尝试了bundle exec rails s。此外,我检查了我的 Gemfile.lock 中只出现了较新的版本,尽管当我执行 gem list 时两个版本都出现了。
  • @PeterAlfvin,您能否发布您的Gemfile 以及您在gem list 时看到的两个不同版本?
  • 我不再拥有原始存储库或 Gemfile.lock 文件,但我已经从终端窗口添加了它们确实存在时的输出。

标签: ruby-on-rails twitter-bootstrap rvm bundler


【解决方案1】:

一点点挖掘把我带到了https://github.com/thomas-mcdonald/bootstrap-sass/blob/master/lib/bootstrap-sass.rb#L43,它调用了https://github.com/chriseppstein/compass/blob/stable/lib/compass/frameworks.rb#L46-L51——看起来有东西在注册旧版本的gem之后注册了新版本,检查你的代码是否调用register ...只是一个理论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多