为什么输入中找不到Ruby脚本(LoadError)?

9

Ruby是由rbenv安装的。

$ ruby -v  
ruby 1.9.3p327 (2012-11-10 revision 37606) [i686-linux]

$ which ruby  
/home/user/.rbenv/shims/ruby

$ which sass  
/home/user/.rbenv/shims/sass

$ gem list
*** LOCAL GEMS ***

bigdecimal (1.1.0) 
bundler (1.2.4)
io-console (0.3)
json (1.5.4)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.4)
sass (3.2.5)

这是我的config.yml文件:
# Assetic Configuration
assetic:
    // ...

    ruby: /home/user/.rbenv/shims/ruby

    filters:
        cssrewrite: ~
        sass:
            bin: /home/user/.rbenv/shims/sass

        // ...

我遇到的错误如下:

[message] An error occurred while running:
'/home/user/.rbenv/shims/ruby' '/home/user/.rbenv/shims/sass' '--load-path' '/path/to/symfony2/src/My/AnyBundle/Resources/public/css' '--cache-location' '/tmp' '/tmp/assetic_sassYbl6MI'

Error Output:
ruby: no Ruby script found in input (LoadError)

我在另一个设置中遇到了错误:

config.yml:

# Assetic Configuration
assetic:
    // ...

    ruby: /home/user/.rbenv/shims/ruby

    filters:
        cssrewrite: ~
        sass: ~

        // ...

我遇到了以下错误:

Error Output:
ruby: No such file or directory -- /usr/bin/sass (LoadError)

Sass无法正常运行。是否引用gem的问题?


3个回答

7

我克隆一个Rails仓库后出现了这个错误:

$ rails server
c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe: no Ruby script found in input (LoadError)

问题出在bin/railsbin/rake文件中。顶部应该是#!/usr/bin/env ruby,但实际上是#!/usr/bin/env。请修改这一行代码。

1
我在 Rubymine 中遇到了这个问题。这是由于启用了 bundler 的自动检测导致的。
禁用 bundler 的自动检测解决了我的问题。 您可以像这样禁用 bundler - 运行 -> 编辑配置 -> 在相应的配置中选择 Bundler 选项卡 -> 选择禁用。

1

Sf 2.1.7,已安装rvm,已安装compass和sass作为gem,特别是基于在安装RVM后无法加载Sass / Compass,在Symfony2中与Assetic一起使用

parameters:
# Assetic
  assetic.filter.compass.images_dir: %kernel.root_dir%/../web/images
  assetic.filter.compass.http_path:  /images
  assetic.ruby.bin: 'pathToRubyBin'

你可以通过以下方式检查 Ruby bin 的路径:

which ruby

如上所述。

对于Sass和Scss,请使用Compass过滤器:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ FOSUserBundle, XcomplSomeBundle ]
    #java: /usr/bin/java
    filters:
        lessphp:
            file: %kernel.root_dir%/../vendor/leafo/lessphp/lessc.inc.php
            apply_to: "\.less$"
        sass: ~
        compass:
            bin: 'pathtocompass'
            apply_to: "~\.(sass|scss)$~"
        cssrewrite: ~

这里需要警告!如果您使用 rvm 或系统自带的 ruby,那么创建时不需要 100500 个包装器。只需执行以下操作:

$ which compass

"而且这是你的路径指南针。并且现在:",保留HTML标签不作解释。
{% block stylesheets %}
    {% stylesheets 'css/general.scss(or .sass)' filter='compass, cssrewrite' output='css/general.css' %}
        <link rel="stylesheet" type="text/css" media="screen" href={{ asset_url }} />
    {% endstylesheets %}
{% endblock %}

最后,我的宝石清单:
~$ gem list

*** LOCAL GEMS ***

bigdecimal (1.1.0)
bundler (1.2.4)
chunky_png (1.2.7)
compass (0.12.2)
fssm (0.2.10)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (10.0.3, 0.9.2.2)
rdoc (3.9.5)
rubygems-bundler (1.1.0)
rvm (1.11.3.6)
sass (3.2.6)

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