【问题标题】:zurb-foundation gem not added to asset path in existing Rails 3.2 applicationzurb-foundation gem 未添加到现有 Rails 3.2 应用程序的资产路径中
【发布时间】:2013-08-27 06:51:13
【问题描述】:

我有一个现有的 Rails 3.2.14 应用程序,我正在尝试将 zurb-foundation 添加到其中。我已经添加了 zurb-foundation gem 并运行了安装生成器。

我的问题是,每当我尝试加载页面时,都会收到此错误:

couldn't find file 'foundation'

当 Sprockets 击中

//= require foundation

application.js 中的一行

问题似乎是包含来自 zurb-foundation gem 的资产的目录没有被添加到加载路径中。相比之下,我有一个我最近生成的应用程序,从一开始就包括 zurb-foundation,@asset_paths.asset_environment.paths 包括以下内容

"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-rails-3.0.4/vendor/assets/javascripts", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/coffee-rails-3.2.2/lib/assets/javascripts", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/zurb-foundation-4.3.0/scss", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/zurb-foundation-4.3.0/js"

不包含在我正在更新的应用程序的资产加载路径中。相反,我得到了(在 better_errors 诊断窗口中使用 p @asset_paths.asset_environment.paths)

"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-4.0.4/app/assets/images", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-4.0.4/app/assets/javascripts", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-4.0.4/app/assets/stylesheets", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-rails-3.0.4/vendor/assets/javascripts", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/coffee-rails-3.2.2/lib/assets/javascripts" 

有趣的是,如果我在开发模式下运行控制台并查看 Rails.application.config.assets.path,它包括:

"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-4.0.4/app/assets/images", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-4.0.4/app/assets/javascripts", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-ui-rails-4.0.4/app/assets/stylesheets", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/jquery-rails-3.0.4/vendor/assets/javascripts", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/coffee-rails-3.2.2/lib/assets/javascripts", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/zurb-foundation-4.3.1/scss", 
"/usr/local/var/rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/zurb-foundation-4.3.1/js"

并且确实包含 zurb-foundation 资产路径。

我已将 gem 'zurb-foundation' 包含在资产组、开发组和任何组之外。我在新应用中使用 zurb-foundation-4.3.1。

我的 Gemfile 资产组是:

group :assets do
  gem 'sass-rails'
  gem 'coffee-rails'
  gem 'uglifier'
  gem 'compass-rails'
  gem 'zurb-foundation'
end

这个问题似乎与Sprockets::FileNotFound with ZURB Foundation 类似,尽管 Jurriaan 没有提及资产加载路径。

知道我可能缺少什么吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails asset-pipeline zurb-foundation assets sprockets


    【解决方案1】:

    您是否尝试过重启网络服务器?

    更新: 您说它在开发中运行良好,您是否尝试过 rake assets:clean 和 rake assets:precompile?

    【讨论】:

    • 我确信这很简单,但事实并非如此。我每次都重新运行捆绑安装并重新启动服务器。感谢您的尝试!
    • 我只是问,因为我在那个 gem 上遇到了同样的事情,最终是我没有重新启动的错。
    • 我直到现在才看到您的编辑,但如果我不清楚,很抱歉。我在开发中看到了这个问题,并没有尝试任何其他环境。 rake assets:clean 运行良好,但 rake assets:precompile 产生了同样的错误。但是,看起来问题是由包含 mongomapper-versioned gem 引起的。从 Gemfile 中删除该 gem 解决了这个问题。
    【解决方案2】:

    这是一个 gem 的问题,它阻止了基金会的条目被添加到 load_path。涉及的 gem 是 mongomapper 版本的。

    通过不加载该 gem,问题解决了。通过重新添加 gem,问题再次出现。

    那颗宝石已经两年没有任何活动了。我想是时候找点别的了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2014-11-12
      • 2013-02-27
      • 2016-12-24
      • 2013-03-14
      相关资源
      最近更新 更多