【问题标题】:Ruby unable to find Foundation/foundation-global?Ruby 找不到 Foundation/foundation-global?
【发布时间】:2015-07-01 03:19:45
【问题描述】:

昨天我决定在我的一个网络应用程序上试用 Foundation。一切正常,就像我在 localhost 中一样,但是当我将新更改推送到我的 EC2 实例时,继续遵循 Zurb Foundation 的说明,我遇到了这个错误:

Sass::SyntaxError in Home#index

显示第 18 行引发的 /var/www/brain_db/app/views/layouts/application.html.erb:

找不到或无法读取要导入的文件:foundation/foundation-global。加载路径:Sass::Rails::Importer(/var/www/brain_db/app/assets/stylesheets/foundation_and_overrides.scss)(在/var/www/brain_db/app/assets/stylesheets/foundation_and_overrides.scss)

作为 Ruby on Rails 和 Foundation 的新手,我真的不确定如何解决这个问题。我通过谷歌搜索发现很多人有类似的问题,但他们的情况略有不同,这让我很难诊断。有什么建议吗?

【问题讨论】:

    标签: css ruby-on-rails ruby responsive-design zurb-foundation


    【解决方案1】:

    我遇到了同样的错误,结果我只需要重新启动本地开发服务器。

    【讨论】:

      【解决方案2】:

      这是运行 rails g foundation:install 时使用的 foundation 版本与您安装的版本不同的结果。 foundation-global 不再作为 foundation_and_overrides.scss 的一部分导入。

      确保您拥有最新版本并重新运行rails g foundation:install。当它提供覆盖您的应用程序布局文件时要小心 - 如果您修改了该文件。将旧文件保存在某处并合并更改。

      【讨论】:

      • 谢谢,这正是我的问题。在运行基础之前,我必须 rvm systemsudo gem install zurb-foundation 加快速度:再次安装。
      【解决方案3】:

      如果您使用的是 sass,那么您是否将您的 application.css 重命名为 applications.scss 并导入文件 @import "foundation";还有一点,如果你使用 gem 'zurb-foundation', '~> 4.0.0' 那么你必须把它放在像这样的资产下

      group :assets do
        gem 'sass-rails',   '~> 3.2.3'
        gem 'coffee-rails', '~> 3.2.1'
        gem 'uglifier', '>= 1.0.3'
        # Add Foundation Here
        gem 'zurb-foundation', '~> 4.0.0'
      end
      

      【讨论】:

        【解决方案4】:

        Foundation + Bower + CodeKit 我也遇到过这个问题。
        我通过替换 app.scss 中的以下相对路径来修复它:

        BEFORE:
        @import "_settings";
        @import "foundation";
        
        AFTER:
        @import "_settings";
        @import "../bower_components/foundation/scss/foundation";`    
        

        并在 settings.scss

        中替换它
        BEFORE:
        @import 'foundation/functions';
        
        AFTER:
        @import "../bower_components/foundation/scss/foundation/_functions";
        

        【讨论】:

          【解决方案5】:

          您的 zurb-foundation gem 安装有问题。在 gem 的目录中应该有一个名为 _foundation_global.scss 的文件,其中包含所有默认的全局变量。如果该文件丢失,您将收到此错误。

          重新安装 gem 应该可以解决问题,在应用的目录中运行:

          gem uninstall zurb-foundation
          bundle install
          

          如果失败,手动安装 Gem (gem install zurb-foundation) 也可以。

          【讨论】:

          • Lame :/ 你的终端中gem which zurb-foundationfind `gem environment gemdir` -name _foundation-global.scss 的输出是什么?
          • 第一个:/home/ubuntu/.rvm/gems/ruby-1.9.3-p429/gems/zurb-foundation-4.1.6/lib/zurb-foundation.rb
          • 当我尝试“gem uninstall zurb-foundation”时,它说我正在使用 4.0.9 和 4.1.6。跟这个有关系吗?
          【解决方案6】:

          我今天在将 zurb-foundation 更新到版本 4 时遇到了这个问题。可能是您的 EC2 实例安装了更高版本的 Foundation。如果是这样,我建议更新您的本地开发环境。我这样做的经验可能会有所帮助...

          似乎不再需要foundation_and_overrides.scss 头部的@import 'foundation/foundation_global';。相反,需要在同一文件的底部添加一个 @import 'foundation';

          另外,我必须更改我的 application.js 文件以仅包含行(与基础相关);

          //= require foundation
          
          $(function(){ $(document).foundation(); });
          

          我曾尝试重新运行推荐 here 的 Foundation 生成器,但它似乎假定它正在处理一个新项目并且只是附加新的 JavaScript 方法,而不是替换以前的方法。

          【讨论】: