【问题标题】:Assets gem throws file not found error in assets precompile资产 gem 在资产预编译中抛出文件未找到错误
【发布时间】:2013-09-21 20:43:46
【问题描述】:

我用 jquery simple faq 创建了一个资产 gem。 https://github.com/MavenHive/jquery_simplefaq

我已在我的 application.js 文件中添加了以下行。

//= require simplefaq

当我在本地运行 assets:precompile 时,出现以下错误。

rake aborted!
couldn't find file 'simplefaq'

为了调查问题,我将 gem 克隆到本地计算机并使用路径引用它。

gem 'jquery_simplefaq', :path => '/path/to/jquery_simplefaq'

这很好用。将其更改为使用本地 gem 存储库的 git url 会引发文件未找到错误。

gem 'jquery_simplefaq', :git => 'file:///path/to/jquery_simplefaq'

使用 :path 有效并且 :git 抛出错误。我错过了什么?

更新:

错误信息

/home/user/.rvm/rubies/ruby-1.9.3-p194-perf/bin/ruby /home/user/.rvm/gems/ruby-1.9.3-p194-perf@gemset2/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
couldn't find file 'simplefaq'
  (in /home/user/code-repo/proj/webapp/app/assets/javascripts/application.js:27)

您可以通过将 gem 添加到任何 rails 3 应用程序来复制此错误。

gem 'jquery_simplefaq', :git => 'git://github.com/MavenHive/jquery_simplefaq'

将下面的行添加到您的 application.js。

//= require simplefaq

运行资产:预编译

【问题讨论】:

  • 您在更改 gemfile 后是否运行 bundle install
  • 是的,我运行了捆绑安装。我还验证了 gem 已安装在我的 rvm gemset 中。
  • 你能发布错误信息吗?
  • 我已经用错误信息更新了问题。

标签: ruby-on-rails gem


【解决方案1】:

所以,我分叉了您的存储库并使其正常工作。您的 gemspec 文件中有一些混淆。

目前,你有这个:

# jquery_simplefaq.gemspec
spec.files = `git ls-files`.split($/)
# ...
spec.require_paths = Dir["{lib,vendor}/**/*"] + ["README.md"]

把它改成这样:

spec.files = Dir["{lib,vendor}/**/*"] + ["README.md"]
# ...
spec.require_paths = ["lib"]

之后,预编译应该可以工作了

【讨论】:

  • 非常感谢。效果很好。只是有点好奇为什么当我使用 :path 来引用本地 gem 时没有抛出这个错误。
  • 直接在控制台中运行git ls-files 命令,你就会看到所需的文件丢失了
猜你喜欢
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 2013-01-20
相关资源
最近更新 更多