导入的文件未找到或无法读取:foundation/foundation-global。

3

我无法使用sass文件中的任何导入文件使其正常工作,即使在activeadmin中也是如此(File to import not found or unreadable: active_admin/mixins)。

奇怪的是,在我安装gem并按照文档生成它们的文件时,我的应用程序资产目录中没有名为foundation或active_admin的目录。

Syntax error: File to import not found or unreadable: foundation/foundation-global.
              Load paths:
                /Users/me/app/assets/stylesheets
                /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets
                /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets
                Compass::SpriteImporter

还有一件事,它可以帮助解决问题,那就是我正在使用RVM。奇怪的是,当我打印$GEM_PATH时,实际上我的gem路径在/usr/local/rvm/gems/ruby-1.9.3-head,但错误显示的gem路径不同。

这是我应用程序中的Gemfile:

group :assets do
  gem 'compass'
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
  gem 'zurb-foundation', '~> 4.0.4'
end

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'debugger'

gem 'activeadmin'

有没有人能告诉我这里发生了什么?我已经和它一起生活了几周了。由于我无法修复它,所以每次重新启动服务器或每次更改sass文件时,我都必须删除foundation_and_overrides.cssactive_admin.css

3个回答

2

您只需要在Compass的config.rb文件中添加以下内容:

    require "zurb-foundation"

这个完美地解决了问题。我正在使用Codekit编译我的脚本,所以这就是它缺少的东西。 - Troy

1

我遇到了同样的问题,并在这里找到了解决方案:

https://dev59.com/TnLYa4cB1Zd3GeqParOp#18803119

引自该答案:

这是因为你使用了不同于已安装版本的 foundation 运行 rails g foundation:install 命令。 foundation-global 不再作为 foundation_and_overrides.scss 的一部分导入。


1

在项目目录(包含 Gemfile 文件的目录)中运行 bundle install 命令。

更新 2013-04-01

Bundler 会创建一个单独的 gem 集合,你的项目可能没有意识到这一点。

尝试执行 bundle uninstall 命令,将 Gemfile 文件移出项目目录并全局安装 gems。如果项目可以正常工作,则说明问题出在这里。

RVM 的 GemSets 也可以维护一个单独的 gem 集合,请检查一下。

更新 2013-04-01 #2

请以当前用户和运行应用程序的用户身份分别执行 which rubywhich compass 命令。以下是 Linux 上的示例,Mac 上应该类似:

sudo su -ls /bin/bash www-data
which ruby
which compass

请针对您的用户和Web应用程序用户在此问题下发表评论,说明结果。

更新于2013-04-02

尝试使用compass-rails宝石而不是compass


很抱歉,但每次我想安装 gem 时,我都要运行 bunble install。这些 gems foundation、activeadmin 或使用 sass 的任何 gem 已经安装过了,但是不知何故,在这些 gem 的导入中会出错。 - lnguyen55
嗨lolmaus,感谢您的帮助。我已经取消了负面评价,但错误仍在抛出。看起来sass-rails与导入路径不兼容,而其他sass功能仍在正常运行。 - lnguyen55
1.8版的Ruby似乎已经预装在您的操作系统中了。也许它被定义在您的Web服务器配置中了? - Andrey Mikhaylov - lolmaus
这可能是一个好的方向,但我对WEBrick没有任何想法。 - lnguyen55
请问您能分享一下您的项目结构和配置文件的内容吗? - Andrey Mikhaylov - lolmaus
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接