Ruby on rails 3 rake资产:预编译未定义的方法目录?零级:零级

Ruby on rails 3 rake资产:预编译未定义的方法目录?零级:零级,ruby-on-rails-3,rake,asset-pipeline,Ruby On Rails 3,Rake,Asset Pipeline,在尝试为生产网站执行assets:precompile时,我第一次遇到了这个错误 rake assets:precompile undefined method directory? for nil:NilClass 我已经成功地更新了网站,并做了很多次资产:预编译 完整示例: # RAILS_ENV=production rake assets:precompile --trace /usr/local/rvm/gems/ruby-1.9.2

在尝试为生产网站执行assets:precompile时,我第一次遇到了这个错误

 rake assets:precompile undefined method directory? for nil:NilClass
我已经成功地更新了网站,并做了很多次资产:预编译

完整示例:

# RAILS_ENV=production rake assets:precompile --trace                        
/usr/local/rvm/gems/ruby-1.9.2-p290@pm/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/usr/local/rvm/gems/ruby-1.9.2-p290@pm/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_
rake aborted!
undefined method `directory?' for nil:NilClass

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

我一直在绞尽脑汁,在谷歌上搜索几个小时的答案,期待着有人对此有所了解。

当文件系统找不到它认为应该预编译的资产时,就会发生这种情况。当我的虚拟机在我的共享文件夹中找不到一个文件时(奇怪的VMware问题,它出现在目录列表中,但该文件实际上并不存在)

我在assets/javascript目录中错误地创建了一个指向不存在的文件的符号链接。删除链接修复了该问题。请注意,我在assets目录中有其他链接,因此一般来说链接不是问题。

在我的例子中,我在Heroku中部署应用程序时遇到了这个问题。 我的一个文件被符号链接到GIT存储库之外的某个地方,因此该文件在“master”中不存在


然后,我必须删除符号链接(
rm…/file
),然后复制原始文件(
cp file1…/file
),最后将其添加到存储库(
git-a-m“添加了一个遗忘的文件”

您可以尝试使用类似于
grep-r“directory”的内容来查找出现错误的文件*
在项目的根目录中找到问题的良好尝试。但不幸的是,它什么也没找到。它可能是其中一颗宝石。我会看看我是否能找到宝石的位置,并在那里做同样的搜索。只是在rvm宝石目录检查…太多点击“目录?”这里列出。我希望rake能更好地了解问题所在,答案是在assets/javascript和assets/images目录中有一个象征性链接的目录。一旦它们被删除,这个错误就停止了。我正在资产文件夹上的deploy上创建一个符号链接。这给我带来了问题。